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

PHP:DateTime对象的字符串将年份设置为0000,php,datetime,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对象中的年份吗。谢谢 更新:下面是一些示例代码。$d

正在向我的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
变量将是一个
$\u POST['timeStart']
。客户端没有正确地对POST数据进行url编码,web服务器url将+解码为一个空格

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

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

根据您的计算
“2013-09-30T22:15:00+0100”
应给出
“0100-09-30T22:15:00+0100”
。。。是这样吗?请发布用于创建具有精确变量值的DateTime对象的代码。标记-否,您的示例字符串已正确格式化为DateTime对象,并且应保留正确的时间戳。我知道我的格式已损坏。我很好奇为什么大多数日期时间都是正确的,但是一年的时区偏移量是0000。