我有一个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'));
但不幸的是,这不起作用。我是在正确的轨道上还是完全错了?
由于
答案 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');
答案 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方法