PHP日期时间添加一秒钟

PHP日期时间添加一秒钟,php,datetime,Php,Datetime,可能重复: 正在尝试向用户输入的日期时间添加一秒钟 $values['start\u date.'$j.-'.$i]是一个有效的日期时间字符串,但是下面的代码抛出了一个错误 $priceStart = date('Y-m-d H:i:s',strtotime($values['start_date_'.$j.'-'.$i])); date_modify($priceStart, '+1 second'); $priceStart =date_format($priceStart, 'Y-m-d

可能重复:

正在尝试向用户输入的日期时间添加一秒钟 $values['start\u date.'$j.-'.$i]是一个有效的日期时间字符串,但是下面的代码抛出了一个错误

$priceStart = date('Y-m-d H:i:s',strtotime($values['start_date_'.$j.'-'.$i]));
date_modify($priceStart, '+1 second');
$priceStart =date_format($priceStart, 'Y-m-d H:i:s');
错误是“date_modify()希望参数1是DateTime,字符串在…行中给出…” date_format()也会出现相同的错误

正确的语法是什么?

date()
提供一个字符串
date\u modify
需要一个DateTime对象

要完成所需操作,最简单的方法是将一个值添加到由
strotime()
返回的值中:

或者,您可以创建DateTime对象:

$priceStart = new DateTime('@' . strtotime($values['start_date_'.$j.'-'.$i]));

剩下的代码应该开始工作。

使用
DateTime
对象。对于这一个来说,它更强大、更容易

$priceStart = new DateTime("@" . strtotime($values['start_date_'.$j.'-'.$i]));
$priceStart->modify("+1 second"); //You're pretty much done here!
echo $priceStart->format("Y-m-d H:i:s"); //Just to see the result.

你完全正确,这解决了我的问题。如何删除此问题?+1。这正是我要说的关于DateTime课程的内容。有关更多信息,请看下面的示例:这应该是已批准的答案。它使用推荐的型号
DateTime
,并且在以后查看时可读性更好。
$priceStart = new DateTime("@" . strtotime($values['start_date_'.$j.'-'.$i]));
$priceStart->modify("+1 second"); //You're pretty much done here!
echo $priceStart->format("Y-m-d H:i:s"); //Just to see the result.