查詢

DateTimeImmutable::createFromFormat()函式—用法及示例

「 透過給定的格式建立一個新的不可變的DateTimeImmutable物件 」


函式名稱:DateTimeImmutable::createFromFormat() 

函式介紹:該函式透過給定的格式建立一個新的不可變的DateTimeImmutable物件。

用法: DateTimeImmutable DateTimeImmutable::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

引數:

  • $format:必需,表示時間的格式,使用與date() 函式相同的格式。
  • $time:必需,要轉換為DateTimeImmutable物件的時間字串。
  • $timezone:可選,一個DateTimeZone物件,表示時區。如果未提供時區,則使用預設時區。

返回值: 成功時,返回一個新的DateTimeImmutable物件;如果失敗則返回false。

示例:

  1. 簡單示例:
$dateString = "2020-12-15";
$date = DateTimeImmutable::createFromFormat('Y-m-d', $dateString);
echo $date->format('Y-m-d'); // 輸出:2020-12-15
  1. 使用時區的示例:
$dateString = "2020-12-15 12:30:45";
$timezone = new DateTimeZone('Asia/Shanghai');
$date = DateTimeImmutable::createFromFormat('Y-m-d H:i:s', $dateString, $timezone);
echo $date->format('Y-m-d H:i:s'); // 輸出:2020-12-15 12:30:45
  1. 校驗時間格式:
$dateString = "2020-12-15 12:30:45";
$date = DateTimeImmutable::createFromFormat('Y-m-d', $dateString);
if ($date === false) {
    echo "時間格式無效";
} else {
    echo $date->format('Y-m-d'); // 輸出:2020-12-15
}

注意事項:

  • 該函式返回一個新的DateTimeImmutable物件,因此原始值不會被更改。
  • $format引數需使用與date()函式相同的格式,詳情請參考官方文件:https://www.php.net/manual/en/datetime.format.php
  • 當提供的時間字串與格式不匹配時,該函式將返回false,需要進行錯誤處理。
  • 如果未提供時區引數,則會使用預設時區。
  • 可以使用DateTimeImmutable物件的format()方法來格式化輸出日期和時間。
補充糾錯
熱門PHP函式
分享連結