在PHP 中轉換日期格式
您可能會遇到需要在PHP 中將日期從一種格式轉換為另一種格式的情況。雖然 PHP 提供了多種日期操作函數,但了解流程和潛在陷阱至關重要。
考慮以下場景:您有一個格式為「y-m-d-h-i-s」的日期,並且希望將其轉換為「Y-m-d H:i:s」格式。通常,您可以使用 strtotime() 將字串轉換為時間戳,然後將其傳遞給 date()。但是,在您的情況下, strtotime() 傳回 false,導致您得到錯誤的日期「1970-01-01 00:00:00」。
問題在於輸入字串的格式。 strtotime() 需要一個有效的時間戳記或它識別的格式的字串。不幸的是,「y-m-d-h-i-s」不是這些可識別的格式之一。
解決方案
PHP 5.3 及更高版本
對於PHP 5.3及更高版本,建議的解決方案是使用日期時間::createFromFormat()。此函數可讓您使用 date() 語法指定精確的遮罩來解析傳入的字串日期。對於您的情況,程式碼如下所示:
PHP 5.2 及更低版本
在PHP 5.2 及更低版本中,您手動解析元素元素(year 、月、日、小時、分鐘、秒)使用substr() 並將結果提供給mktime(),這將產生時間戳記。
但是這種方式比較麻煩。最好使用 strftime() 可以理解的不同格式,它支援各種日期輸入格式。例如,此程式碼有效:
以上是如何在 PHP 中將 'y-m-d-h-i-s' 日期字串轉換為 'Y-m-d H:i:s'?的詳細內容。更多資訊請關注PHP中文網其他相關文章!