【发布时间】:2021-11-17 18:20:28
【问题描述】:
我正在使用
测试一些字符串(国家)strtotime()
功能和发现:
- 'Poland' 确实会返回时间戳,但 'Soland' 或其他类似的东西不会。
- 'GB' 也是。
更进一步,'a string' 也返回一些东西,就像一些简单的字母,如 'G' 或 'P'。
datetime relative formats 文档中未列出这些字符串。
我可能很笨,但我没有找到关于那些特殊情况的任何信息,到底发生了什么?
第二个不太重要的问题:知道我事先不知道格式,如何实际检查字符串是否是有效的日期格式,不包括那些“特殊”字符串?
【问题讨论】:
-
虽然可能有一些特定的原因可以挖掘,但
strtotime并不是首先验证日期字符串的工具,因为它接受“明年”和“+1 个月”和这样非常正式…… -
stackoverflow.com/questions/10119671/… 链接到函数的更多技术方面
-
“以及如何实际检查字符串是否是有效的日期格式,不包括那些“特殊”字符串?” - 在我们之前,我们可以做一些基础研究吗?问?在 Google 中输入“php 检查日期有效”,立即将您带到stackoverflow.com/questions/19271381/… ...
-
以及如何实际检查字符串是否是有效的日期格式,有一组有效的可接受格式,使用键进行格式匹配,使用值进行正则表达式匹配,循环遍历它们,在第一次匹配时,使用格式将值传递给 DateTime::createFromFormat,然后验证 min-max 或 from、to 等
-
我不知道格式我会明白这就是为什么 strtotime 有用。我的问题更多是关于为什么会发生这种情况。但这没关系,我会深入研究源代码以找出答案,并自己检查日期。谢谢。
标签: php date datetime timestamp php-7