gpt4 book ai didi

php - 查看日期/时间字符串是否包含时区

转载 作者:行者123 更新时间:2023-12-05 04:17:39 26 4
gpt4 key购买 nike

我有一个表格,其中日期/时间信息存储为字符串。由于计划不周,一些字符串中有时区(例如,"2014-01-13 04:22 -8")而其他字符串则没有("2014-01 -13 04:22")。这两种类型的字符串都可以与 strtotime()new DateTime() 一起使用,但是一旦我这样做了,关于是否有时区的信息就会丢失——没有时区的字符串timezone 被分配了服务器的默认时区。有没有我可以用来查明字符串是否包含时区标识符的函数?

为此编写正则表达式似乎微不足道,但经验告诉我,日期格式有足够多的变化和奇怪的特殊情况,因此尽可能使用内置函数总是更好。

最佳答案

像这样的正则表达式:

$str = "2014-01-13 04:22 -8"
$has_timezone = preg_match(/[-+][0-9]{1,2}$/, $str);

在字符串末尾查找 +- 后跟 1 或 2 个数字。

如果你还输入conains:

2004-10-10

-10 将被检测为时区,因此可能添加一个 [space] 检测:

$has_timezone = preg_match(/\s[-+][0-9]{1,2}$/, $str);

如果你的时间戳字符串总是:

YYYY-mm-dd HH:ii[ timezone]

那么即使是一个简单的 strlen 检查就足够了。 16 = 无时区,17+ = 时区。

关于php - 查看日期/时间字符串是否包含时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com