PHP strtotime()不输出任何内容

4 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));
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

1. 0000-00-00 22:00:00
2.
3. 2:00
Run Code Online (Sandbox Code Playgroud)

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

Pas*_*TIN 11

strtotime没有"输出"任何东西,顺便说一下:它会false在出错的情况下返回; 看手册:

返回值

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

什么不输出任何东西echo:false被认为是一个空字符串,没有任何东西可以输出.

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,它会为你提供一个很好的结构输出;-)


Gre*_*reg 7

0000-00-00不是有效的日期.

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