下面是我的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

有帮助吗?

解决方案

strtotime不“输出”什么,顺便说一句:它在发生错误的情况下返回false;见href="http://php.net/strtotime" rel="noreferrer">手册中

  

<强>返回值

     

成功返回的时间戳,FALSE   除此以外。上一页到PHP 5.1.0,这   函数将返回-1失败。

什么不输出任何东西是echofalse被认为是一个空字符串,并没有得到outputed

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

  

注意:时间戳的有效范围   通常为星期五,一九零一年十二月十三日   20点45分54秒UTC到星期二,2038年1月19日   3时14分07秒UTC。 (这是日期   对应于最小和   对于一个32位的最大值签署   整数)。另外,不是所有的   平台支持负的时间戳,   因此,日期范围可能   限制为不超过早期的Unix   时代。这意味着,例如日期   之前的1970年1月1日将无法正常工作的   Windows中,一些Linux发行版,和   其他几个操作系统。 PHP   5.1.0和更新的版本虽然克服此限制。

'0000-00-00'是在该范围之外,因此它不被认为是一个有效的日期;因此false返回值。

,点击 作为一个旁注,要真正知道什么是一个变量里面,你可以使用 var_dump 。 结果作为bnus,与的Xdebug 使用,它会给你一个不错的,格式化输出; - )

其他提示

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

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

您为strtotime()time()

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

  

成功返回时间戳,FALSE否则。以前到PHP 5.1.0,该函数将返回-1上失败。

所以它不能验证时间字符串。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top