我的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";
答案 0 :(得分:0)
如果您通过GET / POST请求将字段作为2013-09-30T22:15:00+0000
传递而未进行URL转义,则+
符号可能会被解码为空格。因此难度:修复空间并用+
替换它,日期将正确解析。