为什么 strtotime returns 是一个带有一些奇怪字符串的日期?
Why does strtotime returns a date with some strange string?
我正在使用
测试一些字符串(国家/地区)
strtotime()
运行并发现:
- 'Poland' 做 returns 时间戳,但 'Soland' 或其他类似的东西没有。
- 'GB' 也是。
更进一步,'a string' 也在返回一些东西,就像一些简单的字母一样 'G' 或者'P'.
datetime relative formats 文档中未列出这些字符串。
我可能很笨,但我没有在那些特殊情况下找到任何东西,到底发生了什么?
第二个不太重要的问题:如何实际检查一个字符串是否是有效的日期格式,不包括那些“特殊”字符串,知道我事先不知道格式?
DateTime 接受与 strtotime 相同的参数。用于 DateTime 的参数 'GB' 表明 'GB' 被识别为时区。
var_dump(new DateTime('GB'));
/*
object(DateTime)#3 (3) {
["date"]=>
string(26) "2021-09-24 16:54:37.568996"
["timezone_type"]=>
int(3)
["timezone"]=>
string(2) "GB"
}
*/
与 'Poland' 一样,'GB' 也表示在 list of Others time zones 中。
'Soland' 没有。 DateTime 然后为正确识别的时区提供当前时间 ('Now')。
我正在使用
测试一些字符串(国家/地区)strtotime()
运行并发现:
- 'Poland' 做 returns 时间戳,但 'Soland' 或其他类似的东西没有。
- 'GB' 也是。
更进一步,'a string' 也在返回一些东西,就像一些简单的字母一样 'G' 或者'P'.
datetime relative formats 文档中未列出这些字符串。
我可能很笨,但我没有在那些特殊情况下找到任何东西,到底发生了什么?
第二个不太重要的问题:如何实际检查一个字符串是否是有效的日期格式,不包括那些“特殊”字符串,知道我事先不知道格式?
DateTime 接受与 strtotime 相同的参数。用于 DateTime 的参数 'GB' 表明 'GB' 被识别为时区。
var_dump(new DateTime('GB'));
/*
object(DateTime)#3 (3) {
["date"]=>
string(26) "2021-09-24 16:54:37.568996"
["timezone_type"]=>
int(3)
["timezone"]=>
string(2) "GB"
}
*/
与 'Poland' 一样,'GB' 也表示在 list of Others time zones 中。 'Soland' 没有。 DateTime 然后为正确识别的时区提供当前时间 ('Now')。