(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
IntlDateFormatter::setLenient -- datefmt_set_lenient — تعیین آسانگیری پارسر
شیوه شیگرا
شیوه رویهای
تعریف سختگیری یا ملایمت پارسر در تحلیل ورودی که کاملا بر الگو منطبق نیست. فعالسازی تحلیل ملایم به پارسر امکان میدهد تا تاریخ ایراددار، الگوی زمان را بگونهای تحلیل کند که مقدارها را بدست آورد. فضای خالی بیشتر، کلمات تشخیص داده نشده یامقدار غیر صحیح ("February 30th") پذیرفته نمیشوند.
منبع قالببندی
تعیین آسانگیری پارسر به صورت پیشفرض FALSE (سختگیری) است.
Returns TRUE on success or FALSE on failure.
Example #1 مثال datefmt_set_lenient()
<?php
$fmt = datefmt_create("en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, "dd/mm/yyyy");
echo "lenient of the formatter is : ";
if( $fmt->isLenient() ){
echo('TRUE');
}else{
echo('FALSE');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg is : ".intl_get_error_message();
echo "Error_code is : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "Now lenient of the formatter is : ";
if( $fmt->isLenient() ){
echo('TRUE');
}else{
echo('FALSE');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg is : ".intl_get_error_message();
echo "Error_code is : ".intl_get_error_code();
}
?>
Example #2 مثال OO
<?php
$fmt = new IntlDateFormatter("en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, "dd/mm/yyyy");
echo "lenient of the formatter is : ";
if( $fmt->isLenient() ){
echo('TRUE');
}else{
echo('FALSE');
}
$fmt->parse("35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg is : ".intl_get_error_message();
echo "Error_code is : ".intl_get_error_code();
}
$fmt->setLenient(FALSE);
echo "Now lenient of the formatter is : ";
if( $fmt->isLenient() ){
echo('TRUE');
}else{
echo('FALSE');
}
$fmt->parse("35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg is : ".intl_get_error_message();
echo "Error_code is : ".intl_get_error_code();
}
?>
The above example will output:
lenient of the formatter is : TRUE Trying to do parse('35/13/1971'). Result is : -2147483 Now lenient of the formatter is : FALSE Trying to do parse('35/13/1971'). Result is : Error_msg is : Date parsing failed: U_PARSE_ERROR Error_code is : 9