将分钟添加到日期时间字符串

时间:2013-08-27 12:49:50

标签: php datetime

$datetime_from = '2013-08-27 14:17:00';
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));

结果是:

$datetime_till = '1970-01-01 01:00:00'

预期结果是

$datetime_till = '2013-08-27 15:02'

如何获得它?

6 个答案:

答案 0 :(得分:1)

就像

$datetime_from = strtotime('2013-08-27 14:17:00');
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));

您需要将$datetime_from转换为时间

Orelse你也可以尝试(我不确定

$dateTime = DateTime::createFromFormat('m/d/Y h:i', $datetime_from);
$datetime_from = $dateTime->format('U');
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));

答案 1 :(得分:0)

尝试 -

$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",strtotime($datetime_from)));

答案 2 :(得分:0)

您应该使用DateTime类而不是旧的功能性PHP。

$dateFrom = new \DateTime('2013-08-27 14:17:00');
$dateTill = new \DateTime('2013-08-27 14:17:00');
$dateTill->modify('+45 minutes');

// test if the dates are correct
echo $dateFrom->format('Y-m-d H:i:s'). ' - '.$dateTill->format('Y-m-d H:i:s');

您可以从DateTime类中受益。

答案 3 :(得分:0)

您可以使用DateTime对象在过程样式PHP中执行此操作,如下所示:

$datetime_from = date_create('2013-08-27 14:17:00'); // Create a date object from the start date
$datetime_till = date_add($datetime_from, date_interval_create_from_date_string('45 minutes')); // Add the interval to the starting time
echo date_format($datetime_till, 'Y-m-d H:i'); // Format the date how you want it to be output

希望这有帮助。

答案 4 :(得分:0)

Use:

$datetime_from = strtotime('2013-08-27 14:17:00');

$datetime_till = date("Y-m-d H:i",$datetime_from+(45*60));

答案 5 :(得分:0)

使用DateTime类进行日期/时间修改:

$datetime_from = new DateTime('2013-08-27 14:17:00');
$datetime_till = clone $datetime_from;
$datetime_till->modify('+45 minutes');

echo
    'From: ' . $datetime_from->format('Y-m-d H:i:s') . "\n".
    'Till: ' . $datetime_till->format('Y-m-d H:i:s');

输出将是:

From: 2013-08-27 14:17:00
Till: 2013-08-27 15:02:00

有效modify()格式在Date and Time Formats中解释。


请注意,日期/时间差计算中的各种strtotime()示例不正确。最简单的示例是2013-03-31 21:002013-03-30 21:00之间的差异。对于肉眼来说,确切的是1天差异,但如果你减去这两个日期,你将获得82800秒,即0.95833333333333天。这是因为从冬季到夏季的时间变化。 DateTime正确处理闰年和时区。