2012-05-15 193 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 - 带空格填充? –