Php/docs/intldateformatter.islenient

提供:Dev Guides
< Php
移動先:案内検索

IntlDateFormatter::isLenient

datefmt_is_lenient

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

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


説明

オブジェクト指向型

public IntlDateFormatter::isLenient ( ) : bool

手続き型

datefmt_is_lenient ( IntlDateFormatter $fmt ) : bool

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


パラメータ

fmt
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

参考