是否有一種簡單的方法可以將一種日期格式轉換為PHP中的另一種日期格式?我有這個:$old_date = date('y-m-d-h-i-s'); // works$middle = strtotime($old_date); // returns bool(false)$new_date = date('Y-m-d H:i:s', $middle); // returns 1970-01-01 00:00:00但我當然希望它能夠恢復當前的日期,而不是破解那天。我究竟做錯了什么?
4 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
第二個參數date()
需要是一個合適的時間戳(1970年1月1日以來的秒數)。您正在傳遞一個字符串,date()無法識別。
您可以使用strtotime()將日期字符串轉換為時間戳。但是,即使是strtotime()也無法識別y-m-d-h-i-s
格式。
PHP 5.3及以上
使用DateTime::createFromFormat
。它允許您指定一個精確的掩碼 - 使用date()
語法 - 來解析傳入的字符串日期。
PHP 5.2及更低版本
您必須手動解析元素(年,月,日,小時,分鐘,秒)substr()
并將結果交給mktime(),這將構建一個時間戳。
但那是很多工作!我建議使用strftime()可以理解的不同格式。strftime()理解 輸入的任何日期the next time joe will slip on the ice
。例如,這有效:
$old_date = date('l, F d y h:i:s'); // returns Saturday, January 30 10 02:06:34
$old_date_timestamp = strtotime($old_date);
$new_date = date('Y-m-d H:i:s', $old_date_timestamp);

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
試試這個:
$old_date = date('y-m-d-h-i-s');$new_date = date('Y-m-d H:i:s', strtotime($old_date));
添加回答
舉報
0/150
提交
取消