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

问题描述:

我有一个ISO 8601字符串,像这样:更改ISO 8601日期字符串24从当前值小时

2016-09-26T20:38:15.793Z 

现在,我要推的日期提前24个小时,但在“YMD H:我:“格式。我试验了以下几点:

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

但不幸的是,这是行不通的。我在正确的轨道上还是完全错误的?

感谢

+1

不工作**如何**? –

使用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

如果你想使用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)