2012-01-20 137 views
0

我有我一直在處理的方式來長日期格式轉換的問題

請看下面的代碼的問題:(我已經談到了權當我調試的變量,我得到的值)

當輸入例如 「0000-00-00 00:00:00」

$date1 = ($date['confirmed_at']); //value of $date1 is "0000-00-00 00:00:00" 
$date2 = strtotime($date1); //value of $date2 is "1" 
$date3 = date('y-m-d',$date2); //value of $date3 is "70-01-01" 

當輸入例如 「2011-09-12 8點57分26秒」

$date1 = ($date['confirmed_at']); //value of $date1 is "2011-09-12 08:57:26" 
$date2 = strtotime($date1); //value of $date2 is "1315817846" 
$date3 = date('y-m-d',$date2); //value of $date3 is "11-09-12" 

我對我的價值觀有些困惑...... 我所要做的就是取當前在「YYYY-MM-DD HH-MM-SS」的日期和將其轉換爲「YYYY-MM-DD」格式。

+0

注意:'strtotime'不能代表1970-01-01 00:00:00 GMT之前的日期。 0年的第0天是幾千年前的時間。如果您需要表示1970年之前的日期,則應使用[DateTime](http://us2.php.net/manual/en/book.datetime.php)。否則,在'strtotime'調用之後進行一個簡單的錯誤檢查就是您需要的。哦,並用*大寫* Y來獲得四位數的年份。 – Charles

+0

我試圖得到的所有日期都是2-3年前的那些日期......我遇到的唯一問題是看起來像這樣的情況0000-00-00 00:00: 00 –

回答

1

你看到從事實的第一個例子的結果是什麼,那strtotime()返回UNIX時間戳,這是自1970年1月1日以來的秒數。它不能返回任何合理的0000-00-00 00:00:00

YYYY-MM-DD格式使用date('Y-m-d')

+0

謝謝你的時間! –

0

使用 「日期( 'YM-d',$ DATE2)」 爲YYYY-MM-DD格式

0

strtotime("0000-00-00 00:00:00")結果可能受PHP版本和操作系統各不相同,所以使用strtotime零日"0000-00-00 00:00:00"是沒有意義的。