将ISO 8601日期字符串从其当前值更改为24小时

时间:2016-09-26 15:47:13

标签: php sql date

我有一个ISO 8601字符串,如下所示:

2016-09-26T20:38:15.793Z

现在,我想将日期推进24小时,但是以“Y-m-d H:i:s”格式。我试验了以下内容:

//$date1 is ISO 8601 string
date("Y-m-d H:i:s", strtotime($date1, '+24 hours'));

但不幸的是,这不起作用。我是在正确的轨道上还是完全错了?

由于

3 个答案:

答案 0 :(得分:3)

使用DateTime课程。创建一个新实例,添加24小时并格式化。

$dt = new DateTime('2016-09-26T20:38:15.793Z');
$dt->modify('+24 hours'); 
echo $dt->format('Y-m-d H:i:s');

https://3v4l.org/CHmmm

答案 1 :(得分:0)

如果你想使用strototime,你的参数顺序错误,你需要先将你的字符串转换为时间戳,这需要另一个strtotime的应用程序,或者将其与+24修饰符连接起来。它需要像这样:

echo date("Y-m-d H:i:s", strtotime('+24 hours', strtotime($date1)));

或者像这样:

echo date("Y-m-d H:i:s", strtotime("$date1+24 hours"));

(我还建议使用DateTime类,但仅限FYI。)

答案 2 :(得分:-1)

尝试使用datetime类http://php.net/manual/en/datetime.sub.php

的sub方法