(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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.
Ö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 "\nNow lenient of the formatter is : ";
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();
}
?>
Ö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();
}
?>
Yukarıdaki örneğin çıktısı:
Biçemleyici esnek mi?: EVET '35/13/1971' çözümlenmeye çalışılıyor. Sonuç: 66002400 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