【发布时间】:2012-09-03 22:38:04
【问题描述】:
我无法理解 - 为什么会发生以下情况?
echo date("d-m-Y", strtotime($str));
$str = '214454'; // Produces todays date
$str = '333333'; // Produces 1-1-1970
$str = 'a' (or ANY single char) // Produces tomorrows date
$str = 'aa' (or ANY double char) // Produces 1-1-1970
或者只是返回 strtotime 函数
echo strtotime($str);
$str = '214454'; // Produces todays date
$str = '333333'; // returns false
$str = 'a' (or ANY single char) // Produces tomorrows date
$str = 'aa' (or ANY double char) // returns false
这些值来自我正在进行的一些测试,以尝试找出特定函数如何/为什么返回某些值。
它导致我的函数失败 - 因为你会假设“a”(或任何单个字符)作为错误的错误日期返回。
【问题讨论】:
-
因为单个字符被视为时区。 timeanddate.com/library/abbreviations/timezones/military这必须是评论。
-
@PLB - 谢谢 - 但我无法在任何地方的 strtotime() 文档中找到它?
-
@TheShiftExchange Jon,已经比我更好地回答了这个问题。几个月前我遇到了同样的问题,并在致电
strtotime之前通过检查解决了它。 -
@PLB 实际上你的桌子有效;)我会保留它作为答案
-
@PLB:尽管您的回答实际上是正确的,并且是第一个。如果你扩大一点而不是删除它,我肯定会投赞成票。