首頁 >後端開發 >php教程 >如何在 PHP 中將 'y-m-d-h-i-s' 日期字串轉換為 'Y-m-d H:i:s'?

如何在 PHP 中將 'y-m-d-h-i-s' 日期字串轉換為 'Y-m-d H:i:s'?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 18:32:34550瀏覽

How Can I Convert a 'y-m-d-h-i-s' Date String to 'Y-m-d H:i:s' in PHP?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn