2011-04-09 328 views
1

我有一點點的代碼,它似乎沒有正常工作。PHP - 返回錯誤值的日期

我試圖把它放到我的數據庫正確的格式。我做的是以下情況:

date('Y-m-d H:i:s', strtotime('24/05/2011')); 

但每次我贊同它的時候,它返回:

1970-01-01 10:00:00 

回答

1

只是一個猜測,但試試這個:

date('Y-m-d H:i:s', strtotime('24/05/2011 00:00:00')); 

測試它顯示了在這工作:

echo date('Y-m-d H:i:s', strtotime("24-5-2011")); 
+0

Ahhhhh .... - 而不是/ ..謝謝 – BigJobbies 2011-04-09 05:27:42

1

這意味着你的strtotime函數無法解析該日期。當它失敗時,它返回false其中date讀爲0,這是UNIX紀元。作爲程序員XR建議,您可能需要切換您的格式有點 - 如果他說的話不起作用,嘗試轉換datetime成這種格式:

date('Y-m-d H:i:s', strtotime('2011-05-24 00:00:00')); 
3

日期/ d/y或DMY格式 是通過查看各種 部件之間的 隔板消除歧義:如果分離器是 斜槓(/),則美國米/ d/y假設爲 ;而如果分隔符是 短劃線( - )或點(。),則假定歐洲d-m-y格式爲 。

strtotime

的docmentation這應該工作

date('Y-m-d H:i:s', strtotime('05/24/2011')); 
+0

有趣的是,我從來沒有花時間瞭解之前的工作方式。這是來自PHP.net的文檔嗎? – 2011-04-09 05:27:37

+0

如果您檢查鏈接,您確實會發現它是官方文檔。 – Charles 2011-04-09 05:31:53

0

首先,這不是日期(),但的strtotime()。 接下來,strtotime()不是一個魔杖,讀你的頭腦,並理解任何格式。
這只是一個函數,接受某些參數。 因此,如果它返回錯誤值 - 請檢查輸入參數並閱讀手冊以查看它們是否正確。

無論如何你不需要這麼複雜的功能。所有你需要的是一些字符串操作:

list($d,$m,$y) = explode("/",$date); 
$date = "$y-$m-$d"; 

理解的字符串操作是使用PHP最重要的事情。