0

我的 php 代码正在发送以下DateTime变量值:

2013-09-30T22:15:00+0000

因为它是通过网络服务器,所以我的代码真正得到的是:

2013-09-30T22:15:00 0000

当我使用上面的值初始化 DateTime 变量时,我得到:

0000-09-30T22:15:00+0000

我知道正确/简单的做法是对datetime字符串 url 进行编码。但是有谁知道为什么尾随0000应用于DateTime对象中的年份。谢谢

更新:下面是一些示例代码。$dateString变量将是一个$_POST['timeStart']. 客户端未正确对 POST 数据进行 url 编码,而 Web 服务器 url 将 + 解码为空格。

$dateString = "2013-09-30T22:15:00 0000";
$date = new DateTime($dateString);
echo $date->format(DateTime::ISO8601) . "\n";
4

1 回答 1

0

如果您2013-09-30T22:15:00+0000通过 GET/POST 请求传递字段而没有进行 URL 转义,则该+符号可能会被解码为空格。因此困难:修复空间并将其替换为 a+并且日期将正确解析。

于 2013-09-30T14:49:39.943 回答