2012-05-15 306 views
-1
if(strtotime($date_in)==false){ 
    echo $date_in." wtf?"; 
} 

輸出:爲什麼strtotime返回false?

2012-05-12跆拳道?

爲什麼strtotime($date_in)返回false

+1

取決於$ date_in上的值 –

+1

如果您檢查false,請始終使用'==='運算符。 – kapa

+1

看看允許的日期/時間格式:http://de.php.net/manual/en/datetime.formats.php – mAu

回答

3

嘗試:

if(strtotime($date_in)===false){ 
    echo "[$date_in] wtf?"; 
} 

如果測試false始終使用===。同樣用括號包裹$date_in變量可以幫助您查看是否有空白。

http://php.net/manual/en/function.strtotime.php

+0

雖然它的良好做法 - 這不是問題.... – ManseUK

+0

thx很多它是一個空白我做$ date_in = trim($ date_in),一切都好。 – szapio

+0

@szapio記得投票並接受。 – iambriansreed

2

我試圖複製這一問題,有成功,但只有後,我改變了默認時區到:

date_default_timezone_set('Europe/Brussels'); 

這樣,也許你可以檢查你的ini文件,或使用date_timezone_get並確保您的設置知道如何處理您使用的日期格式?

另外,或者如果php.ini由於某種原因不能使用限制,您可以查看datetime object

+0

Thx all for response它是$ date_in變量中的空格。我使用數據庫中的值(mysql中的日期字段)填充$ date_in。不知道爲什麼它返回空白,但這是問題所在。 – szapio

+1

該死的,想過提示'trim()' - 或許檢查數據庫中的字段是否設置爲varchar - 帶空格填充? –