PHP Conference Japan 2024

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0,PHP 7,PHP 8,PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient获取 IntlDateFormatter 使用的宽松模式

描述

面向对象风格

public IntlDateFormatter::isLenient(): bool

过程化风格

datefmt_is_lenient(IntlDateFormatter $formatter): bool

检查解析器在解释与模式不完全匹配的输入时是严格还是宽松。

参数

formatter

格式化程序资源。

返回值

如果解析器宽松,则返回true,如果解析器严格,则返回false。默认情况下,解析器是宽松的。

示例

示例 #1 datefmt_is_lenient() 示例

<?php
$fmt
= datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/mm/yyyy'
);
echo
'格式化程序的宽松模式为:';
if (
$fmt->isLenient()) {
echo
'TRUE';
} else {
echo
'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\n 尝试执行 parse('35/13/1971')。\n结果为: " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\n错误消息为: " . intl_get_error_message();
echo
"\n错误代码为: " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo
'现在格式化程序的宽松模式为:';
if (
$fmt->isLenient()) {
echo
'TRUE';
} else {
echo
'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\n 尝试执行 parse('35/13/1971')。结果为: " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\n错误消息为: " . intl_get_error_message();
echo
"\n错误代码为: " . intl_get_error_code();
}

?>

示例 #2 OO 示例

<?php
$fmt
= new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
"dd/mm/yyyy"
);
echo
"格式化程序的宽松模式为:";
if (
$fmt->isLenient()) {
echo
'TRUE';
} else {
echo
'FALSE';
}
$fmt->parse('35/13/1971');
echo
"\n 尝试执行 parse('35/13/1971')。\n结果为: " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0){
echo
"\n错误消息为: " . intl_get_error_message();
echo
"\n错误代码为: " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo
'现在格式化程序的宽松模式为:';
if (
$fmt->isLenient()) {
echo
'TRUE';
} else {
echo
'FALSE';
}
$fmt->parse('35/13/1971');
echo
"\n 尝试执行 parse('35/13/1971')。\n结果为: " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\n错误消息为: " . intl_get_error_message();
echo
"\n错误代码为: " . intl_get_error_code();
}

?>

以上示例将输出

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

另请参阅

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top