这个问题已经在这里有了答案:




已关闭8年。






尝试将一秒钟添加到用户输入的日期时间
$ values ['start_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_modify需要一个DateTime对象。

做您想要的事的最简单方法是将一个简单地添加到strtotime()返回的值中:

$priceStart = date('Y-m-d H:i:s',strtotime($values['start_date_'.$j.'-'.$i]) + 1);

或者,您可以创建一个DateTime对象:
$priceStart = new DateTime('@' . strtotime($values['start_date_'.$j.'-'.$i]));

其余的代码应开始工作。

09-27 02:52