gpt4 book ai didi

php - 解析位置41时间字符串失败(i) : Double timezone specification

转载 作者:IT王子 更新时间:2023-10-29 00:07:29 24 4
gpt4 key购买 nike

我正在使用 jquery daterangepicker ,它又使用 jQuery datapicker .

我的 Ubuntu 系统运行良好。浏览器正在发送一个可解析的字符串:

$dateStarted = new \DateTime($post['startDate']); // Thu Nov 15 2012 00:00:00 GMT-0700 (MST)
print_r($dateStarted);

输出:

DateTime Object
(
[date] => 2012-11-15 00:00:00
[timezone_type] => 1
[timezone] => -07:00
)

在我们的测试人员 Windows 系统上,浏览器在字符串中发送扩展时区:

$dateStarted = new \DateTime($post['startDate']); // Thu Nov 15 2012 00:00:00 GMT-0700 (Mountain Standard Time)
print_r($dateStarted);

抛出和异常:

Exception: DateTime::__construct(): Failed to parse time string 
(Thu Nov 15 2012 00:00:00 GMT-0700 (Mountain Standard Time))
at position 41 (i): Double timezone specification

我用 google 搜索了一下,找不到关于这个特定 PHP 错误的任何资源。

我通过去除返回相同结果的括号内的文本来“解决”这个问题:

$dateString = strstr($dateString, " (", true); // Thu Nov 15 2012 00:00:00 GMT-0700

这似乎很糟糕,我正在寻找有关如何正确执行此操作的建议。

最佳答案

使用 DateTime::createFromFormat()正如 Marc B 所建议的那样,这似乎是一个更好的解决方案。

我最终得到的是:

$dateStarted = \DateTime::createFromFormat('D M d Y H:i:s e+', $post['startDate']); // Thu Nov 15 2012 00:00:00 GMT-0700 (Mountain Standard Time)
print_r($dateStarted);
print_r(\DateTime::getLastErrors());

现在输出正确的日期:

DateTime Object
(
[date] => 2012-11-15 00:00:00
[timezone_type] => 1
[timezone] => -07:00
)

Array
(
[warning_count] => 1
[warnings] => Array
(
[33] => Trailing data
)

[error_count] => 0
[errors] => Array
(
)

)

格式末尾的 + 是实现此功能的魔力。

关于php - 解析位置41时间字符串失败(i) : Double timezone specification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13421635/

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