函式名稱:DateTimeImmutable::createFromFormat()
函式介紹:該函式透過給定的格式建立一個新的不可變的DateTimeImmutable物件。
用法: DateTimeImmutable DateTimeImmutable::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
引數:
- $format:必需,表示時間的格式,使用與date() 函式相同的格式。
- $time:必需,要轉換為DateTimeImmutable物件的時間字串。
- $timezone:可選,一個DateTimeZone物件,表示時區。如果未提供時區,則使用預設時區。
返回值: 成功時,返回一個新的DateTimeImmutable物件;如果失敗則返回false。
示例:
- 簡單示例:
$dateString = "2020-12-15";
$date = DateTimeImmutable::createFromFormat('Y-m-d', $dateString);
echo $date->format('Y-m-d'); // 輸出:2020-12-15
- 使用時區的示例:
$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
- 校驗時間格式:
$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()方法來格式化輸出日期和時間。