PHP strtotime()看起来好像是期待一种欧元格式

前端之家收集整理的这篇文章主要介绍了PHP strtotime()看起来好像是期待一种欧元格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在使用 PHP的strtotime()方法接受表单上的日期字段.我喜欢它有多强大,它将如何接受“明天”,“下周四”或(据说)任何日期表示并将其转换为Unix时间戳.

它一直很好 – 直到昨天.有人进入“2-4-10”而不是记录2010年2月4日,它记录在2002年4月10日!所以它期望Y-M-D而不是M-D-Y.

我想也许问题只是使用了两位数的年份,所以我们再次尝试使用“2-4-2010”.记录在2010年4月2日!那时我只是不明白strtotime()正在做什么. PHP.net表示它希望采用美国英语日期格式.为什么它会假设D-M-Y?

有没有解决的办法?或者我是否必须停止使用strtotime()?

注意:我刚才做了一个测试.当你使用斜杠而不是连字符/短划线时,它工作正常,即使是2/4/10.为什么这个重要?如果就是这样,我应该在表单输入上运行str_replace(“ – ”,“/”,$input),然后再将其传递给strtotime()吗?

– 表示ISO日期:
03-02-01  => 1. february 2003 (ISO)
01.02.03  => 1. february 2003 (European)
02/01/03  => 1. february 2003 (US)

猜你在找的PHP相关文章