8

可能重复:
PHP 日期时间

尝试将一秒添加到用户输入的日期时间 $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() 也出现同样的错误

什么是正确的语法?

4

2 回答 2

24

改为使用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.
于 2012-05-11T19:48:54.870 回答
14

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]));

并且您的其余代码应该开始工作。

于 2012-05-11T19:45:20.477 回答