PHP Datetime ISO8601转换

时间:2015-08-05 07:43:20

标签: php datetime iso8601

我正在使用Datetime格式化ISO8601中的日期,然后我将其恢复,但恢复不会给我原始值。

测试代码段

$d = new \DateTime('0000-00-00 00:00:00');
$formatted =  $d->format(\DateTime::ISO8601);
$restored  =  \DateTime::createFromFormat(\DateTime::ISO8601, $formatted);
var_dump($d);
var_dump($formatted);
var_dump($restored);

结果

object(DateTime)[5]
  public 'date' => string '-0001-11-30 00:00:00' (length=20)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Rome' (length=11)

string '-0001-11-30T00:00:00+0100' (length=25)


boolean false

PHP版本PHP 5.4.28

1 个答案:

答案 0 :(得分:0)

Nulluary的第0个不是存在的日期。 PHP用它做了一些数学计算(例如,第13个月成为第二个月的第一个月,值< 1反向工作),所以你得到了你得到的。没有"权利"回答0000-00-00,这是胡说八道。它适用于实际日期。