使用strtotime() 處理1970 年之前的日期
問題:
你有一個MySQL 資料庫中的文字列,以yyyy-mm-dd 格式儲存日期。您的 PHP 程式碼使用 strtotime() 來轉換日期,但您發現它只解析 1970 年 1 月 1 日之後的值。您的許多日期都在此限制之前,您想知道是否有一種解決方法,無需更改資料庫結構。
解決方案:
PHP 官方文件強調了日期範圍限制strtotime():
Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT
選項1:升級PHP版本和作業系統
如果可能,升級到等於或大於5.1.0 的 PHP 版本在支援擴充日期範圍的平台上。
選項 2:利用 PHP 的 DateTime物件
考慮對 strtotime() 範圍之外的日期使用 DateTime 物件。它們提供了更大的靈活性。
製程方法:
$date = date_create($row['value']); if (!$date) { $e = date_get_last_errors(); foreach ($e['errors'] as $error) { echo "$error\n"; } exit(1); } echo date_format($date, "F j, Y");
OOP 方法:
try { $date = new DateTime($row['value']); } catch (Exception $e) { echo $e->getMessage(); exit(1); } echo $date->format("F j, Y");
以上是在 PHP 中使用「strtotime()」時如何處理 1970 年之前的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!