strtotime("25/03/1957")
返回false。什么会满足所有这些日期格式?我无法想象实际制作自己需要多长时间,所以我希望你已经知道了它。
谢谢!
答案 0 :(得分:2)
考虑到某些日期有效,但可以指向两个不同的实际日期,任何时候任何功能都无法“猜测”正确的格式......
为了解决这个问题,使用PHP> = 5.3,添加了一个新函数:date_create_from_format
- 但它不存在PHP< 5.3,不幸的是......
(另见DateTime::createFromFormat
)
尽管如此,在你所采用的例子中,1957年可能是问题的根源:当涉及到日期时,PHP通常与UNIX Timestamps一起使用...
并且,至少在32位系统上,那些只能代表1970年到2038年之间的日期 - 因为它们计算自1970-01-01以来的秒数。
为避免此问题,使用{em>(DateTime
)的quoting类通常是个好主意:
日期和时间信息是 内部存储为64位数字 所有可以想象的日期(包括 负面年份)得到支持。该 范围大约是2920亿年 过去对未来一样。
(它不会解决PHP< 5.3的解析问题;但它会解决日期范围问题......)
答案 1 :(得分:1)
我发现dateTime对象支持的格式比strtotime()函数更广泛,服务器的时区设置也有所不同;但是在使用字符串到日期方法之前,我最终构建了一个用' - '替换'/'的函数。我也测试有效,然后尝试交换明显的dd和mm(25-03-2001 => 03-25-2001),如果在再次测试之前无效。