PHP Conference Nagoya 2025

IntlDateFormatter::isLenient

datefmt_is_lenient

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

IntlDateFormatter::isLenient -- datefmt_is_lenientIntlDateFormatter で使用する寛大さを取得する

説明

オブジェクト指向型

public IntlDateFormatter::isLenient(): bool

手続き型

datefmt_is_lenient(IntlDateFormatter $formatter): bool

パターンに正確にマッチしていない入力の処理を、 パーサが厳格に行うのか寛大に行うのかを調べます。

パラメータ

formatter

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
'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').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg is : " . intl_get_error_message();
echo
"\nError_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
"\nError_msg is : " . intl_get_error_message();
echo
"\nError_code is : " . intl_get_error_code();
}

?>

例2 オブジェクト指向の例

<?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').\nResult is : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0){
echo
"\nError_msg is : " . intl_get_error_message();
echo
"\nError_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').\nResult is : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg is : " . intl_get_error_message();
echo
"\nError_code is : " . 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

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top