首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Datetime ISO8601转换

PHP Datetime ISO8601转换
EN

Stack Overflow用户
提问于 2015-08-05 15:43:20
回答 1查看 342关注 0票数 0

我用Datetime在ISO8601中格式化一个日期,然后恢复它,但是恢复不会给我提供原始值。

测试代码片段

代码语言:javascript
复制
$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);

结果

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 15:53:12

Nulluary的第0天不是已存在的日期。PHP用它做了一些时间的计算(例如,第13个月变成了第二年的第1个月,值<1反过来工作),所以你得到了你得到的东西。0000-00-00没有“正确”的答案,这是胡说八道。它可以很好地处理真实的日期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31826330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档