(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
IntlDateFormatter::setLenient -- datefmt_set_lenient — Çözümleyiciye esneklik verir
Nesne yönelimli kullanım
Yordamsal kullanım
Kalıpla tam olarak eşleşmeyen girdilerin yorumlanmasında çözümleyicinin esnek mi yoksa katı mı davranacağını belirler. Esnek çözümleme etkin olduğunda çözümleyici kusurlu tarih ve saat kalıplarını kabul eder ve olabildiğince bir değer oluşturmaya çalışır. Fazladan boşluklar, tanınmayan dizgecikler veya geçersiz değerler ("February 30th" gibi) kabul edilmez.
Biçemleyici nesne.
Çözümleyicinin esnek olması isteniyorsa TRUE istenmiyorsa FALSE belirtilir. FALSE öntanımlıdır.
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnek 1 - datefmt_set_lenient() örneği
<?php
$fmt = datefmt_create("tr_TR", IntlDateFormatter::FULL,
IntlDateFormatter::FULL, 'Europe/Istanbul',
IntlDateFormatter::GREGORIAN ,"dd/mm/yyyy");
echo "Biçemleyici esnek mi?: ";
if( $fmt->isLenient() ){
echo('EVET');
}else{
echo('HAYIR');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: " .
datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "\n Hata iletisi: ".intl_get_error_message();
echo "\n Hata kodu: ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "\nYeni biçemleyici esnek mi?: ";
if( $fmt->isLenient() ){
echo('EVET');
}else{
echo('HAYIR');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: " .
datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "\n Hata iletisi: ".intl_get_error_message();
echo "\n Hata kodu: ".intl_get_error_code()."\n";
}
?>
Örnek 2 - Nesne yönelimli kullanım örneği
<?php
$fmt = new IntlDateFormatter("tr_TR", IntlDateFormatter::FULL,
IntlDateFormatter::FULL, 'Europe/Istanbul',
IntlDateFormatter::GREGORIAN,"dd/mm/yyyy" );
echo "Biçemleyici esnek mi?: ";
if( $fmt->isLenient() ){
echo('EVET');
}else{
echo('HAYIR');
}
$fmt->parse("35/13/1971");
echo "\n '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: " .
$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
echo "\n Hata iletisi: ".intl_get_error_message();
echo "\n Hata kodu: ".intl_get_error_code();
}
$fmt->setLenient(FALSE);
echo "\nYeni biçemleyici esnek mi?: ";
if( $fmt->isLenient() ){
echo('EVET');
}else{
echo('HAYIR');
}
$fmt->parse("35/13/1971");
echo "\n '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
echo "\n Hata iletisi: ".intl_get_error_message();
echo "\n Hata kodu: ".intl_get_error_code()."\n";
}
?>
Yukarıdaki örneğin çıktısı:
Biçemleyici esnek mi?: EVET '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: 34467180 Yeni biçemleyici esnek mi?: HAYIR '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: Hata iletisi: Date parsing failed: U_PARSE_ERROR Hata kodu: 9