我有下面的格式輸出日期變量:將日期轉換爲日期名稱週一,週二,週三
201308131830
這是2013 - 月 - 13 - 18:30
我使用這個檢索天名稱,但它得到錯誤的日子:
$dayname = date('D', strtotime($longdate));
任何想法我做錯了什麼?
我有下面的格式輸出日期變量:將日期轉換爲日期名稱週一,週二,週三
201308131830
這是2013 - 月 - 13 - 18:30
我使用這個檢索天名稱,但它得到錯誤的日子:
$dayname = date('D', strtotime($longdate));
任何想法我做錯了什麼?
這是當你的日期和時間存儲在一個非標準格式會發生什麼。與他們合作成爲問題。
$datetime = DateTime::createFromFormat('YmdHi', '201308131830');
echo $datetime->format('D');
大處理謝謝 – user1444027 2013-03-13 14:58:33
更新演示使用新的小提琴 – 2017-09-13 13:42:53
好像你可以使用小寫使用PHP日期函數「L」格式字符產生相同的結果。[點擊這裏查看PHP日期()doc](http://php.net/manual/en/function.date.php)。 – plaidcorp 2017-10-04 19:13:52
不能使用strtotime
爲你的時間格式不supported date and time formats of PHP.
爲此範圍內,你必須先創建一個有效的日期格式利用的createFromFormat function。
//creating a valid date format
$newDate = DateTime::createFromFormat('YmdHi', $longdate);
//formating the date as we want
$finalDate = $newDate->format('D');
非常感謝你 – user1444027 2013-03-13 14:57:36
您的代碼適用於我。
$input = 201308131830;
echo date("Y-M-d H:i:s",strtotime($input)) . "\n";
echo date("D", strtotime($input)) . "\n";
輸出:
2013-Aug-13 18:30:00
Tue
然而如果傳遞201308131830
作爲數它是50到100倍大於可以由32位整數表示。 [依賴於你的系統的具體實施。如果您的服務器/ PHP版本不支持64位整數,則數目會溢出,可能最終會被作爲一個負數輸出和date()
將默認爲Jan 1, 1970 00:00:00 GMT
。
請確定無論您從中檢索此數據的來源是否將該日期返回爲字符串,並將其保留爲字符串。
很好的解釋,謝謝Sam – user1444027 2013-03-13 15:03:11
您的代碼對我的作品
$date = '15-12-2016';
$nameOfDay = date('D', strtotime($date));
echo $nameOfDay;
使用升而不是d,如果你喜歡的名字的完整的文本格式
感謝這段代碼爲我工作 – 2017-10-17 16:26:54
好像你可以使用date()和小寫的「L」以下列方式格式字符:
$weekday_name = date("l", $timestamp);
很適合我,這裏是DOC:http://php.net/manual/en/function.date.php
這個日期不是'timestamp'是'YYYYMMDDHHII' – 2013-03-13 14:49:49
這只是一個數字。時間不是心理上的,不能「猜測」數字的表現。 **我們**可以看到它可能是'yyyymmddhhmmss',但是strtotime不能。請改用date_create_from_format()。或轉換成正確的格式'2013年8月13日18:30',這可以通過的strtotime – 2013-03-13 14:50:39