PHP strtotime()不输出任何内容

时间:2009-08-03 21:14:34

标签: php datetime strtotime

这是我的PHP代码:

echo '<br />1. '.$w_time_no;
echo '<br />2. '.strtotime($w_time_no);
echo '<br />3. '.date('G:i', strtotime($w_time_no));

这就是我得到的:

1. 0000-00-00 22:00:00
2.
3. 2:00

为什么strtotime()本身没有输出?服务器设置有问题吗?服务器:Apache / 2.2.11(Win32),PHP 5.2.10,MySQL客户端版本:5.0.51a。

3 个答案:

答案 0 :(得分:10)

strtotime没有“输出”任何东西,顺便说一下:如果出现错误,它会返回false;请参阅manual

  

返回值

     

返回成功时间戳,FALSE   除此以外。在PHP 5.1.0之前,这个   函数在失败时返回-1。

什么不输出任何内容echofalse被视为空字符串,没有任何内容可以输出。

strtotime的文档还给出了日期的有效范围:

  

注意:时间戳的有效范围   通常是1901年12月13日星期五   20:45:54 UTC到2038年1月19日星期二   03:14:07 UTC (这些是日期   对应于最小值和   32位有符号的最大值   整数。)另外,不是全部   平台支持负时间戳,   因此你的日期范围可能是   限于不早于Unix   时代。这意味着,例如日期   在1970年1月1日之前将不会工作   Windows,一些Linux发行版,以及   一些其他操作系统。 PHP   5.1.0和更新的版本克服了这个限制。

'0000-00-00'超出此范围,因此不被视为有效日期;因此false返回值。


作为旁注,要真正了解变量中的内容,可以使用var_dump
作为一个与Xdebug一起使用的bnus,它会为你提供一个很好的输出; - )

答案 1 :(得分:7)

0000-00-00不是有效日期。

date()给出一个输出,因为它将输入时间解释为0并补偿服务器的时区,我假设。我敢打赌date('Y-m-d H:i', strtotime(...))会给1970-01-01 2:00

答案 2 :(得分:-1)

您误以为strtotime() time()

strtotime字面上是字符串到时间,它需要一个字符串来转换.....到时间。

  

返回成功时间戳,否则返回FALSE。在PHP 5.1.0之前,此函数将在失败时返回-1

因此无法验证时间字符串。