PHP Datetime无法转换负ISO8601日期

时间:2015-08-05 08:32:56

标签: php datetime iso8601

使用DateTime转换负数日期让我错误

测试代码

boolean false

结果

object(DateTime)[5]
  public 'date' => string '-0001-11-30 00:00:00' (length=20)
  public 'timezone_type' => int 1
  public 'timezone' => string '+01:00' (length=6)

预期结果

applicationHost.xdt

(或类似的东西)

P.S。负日期字符串是使用$ d->格式(\ DateTime :: ISO8601);

创建的

PHP版本PHP 5.4.28

1 个答案:

答案 0 :(得分:0)

根据Format手册

 public string DateTime::format ( string $format )

其中

$format

Format accepted by date().

如果您查看date()

$d->format(\DateTime::ISO8601);

应该是

$d->format("c")

因为“c”符合date()

中的格式
  

ISO 8601日期(在PHP 5中添加)

在我的测试$d->format(\DateTime::ISO8601);输出

  

2015-09-15T00:00:00 + 0200

$d->format("c");

输出

  

2015-09-15T00:00:00 + 02:00

我希望它有所帮助。