查詢

IntlDateFormatter::setLenient()函式—用法及示例

「 設定IntlDateFormatter物件的寬鬆模式 」


函式名稱:IntlDateFormatter::setLenient()

函式描述:設定IntlDateFormatter物件的寬鬆模式。

適用版本:PHP >= 5.3.0

用法:

public bool IntlDateFormatter::setLenient ( bool $lenient )

引數:

  • $lenient: 一個布林值,表示是否啟用寬鬆模式。如果設定為true,表示啟用寬鬆模式;如果設定為false,表示禁用寬鬆模式。

返回值:

  • 如果成功設定寬鬆模式,則返回true;否則返回false。

示例:

// 建立IntlDateFormatter物件
$formatter = new IntlDateFormatter('en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL);

// 設定寬鬆模式為true
$formatter->setLenient(true);

// 格式化日期
$date = new DateTime('2022-13-01');
echo $formatter->format($date); // 輸出:January 1, 2023

// 設定寬鬆模式為false
$formatter->setLenient(false);

// 格式化日期
$date = new DateTime('2022-13-01');
echo $formatter->format($date); // 丟擲異常:IntlDateFormatter::format(): datefmt_format: string is not a valid DateTime object

說明: IntlDateFormatter::setLenient()函式用於設定IntlDateFormatter物件的寬鬆模式。在寬鬆模式下,如果傳入的日期不符合指定的格式,會嘗試自動糾正日期。如果禁用寬鬆模式,則會丟擲異常。

在示例中,首先建立了一個IntlDateFormatter物件,並設定格式為完整的日期和時間。然後透過呼叫setLenient(true)方法啟用寬鬆模式。接下來,嘗試將一個無效的日期(2022-13-01)格式化,併成功輸出了糾正後的日期(January 1, 2023)。

然後,透過呼叫setLenient(false)方法禁用寬鬆模式。再次嘗試將無效日期格式化時,丟擲了異常,因為禁用寬鬆模式不允許自動糾正無效的日期。

補充糾錯
熱門PHP函式
分享連結