PHP:DateTime对象的字符串将年份设置为0000

时间:2013-09-30 14:09:18

标签: php datetime

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

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

因为它正在通过Web服务器,我的代码真正得到的是:

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";

1 个答案:

答案 0 :(得分:0)

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

相关问题