PHP在特定日期增加24小时

时间:2019-11-18 17:52:59

标签: php datetime

我需要在要存储在变量中的日期上添加24小时。

示例:

$date = "2019-11-20 05:05:00"; => $date = "2019-11-21 05:05:00";(已添加24小时)。

我尝试了一些选择,但是在任何选择中都没有成功。

我尝试使用strtotime()方法:

$new_time = date("Y-m-d H:i:s", strtotime('+24 hours')).

如果sintaxe与上面类似,则可以正常工作,但是它似乎不接受预定义的日期或变量,例如:

$date = "2019-11-20 05:05:00";
$new_time = date($date, strtotime('+24 hours'));

或者这个:

$new_time = date("2019-11-20 05:05:00", strtotime('+24 hours'));

在两种情况下,输出均与输入日期相同,但未添加+24。

我已经尝试过modify()方法。

$date = "2019-11-20 05:05:00";

$dateTime= new DateTime($date);
$dateTime->modify('+24 hours');

print_r($dateTime);

echo $datetime->date;

输出(如果我打印对象):

DateTime Object
(
    [date] => 2019-11-21 05:05:00.000000
    [timezone_type] => 3
    [timezone] => Europe/Paris
)

2019-11-21 05:05:00.000000

输出(如果我不打印对象):

Notice:  Undefined property: DateTime::$date

这是可行的,但是问题是,只有打印整个dateTime object时,我才能访问date属性,这会给我的应用程序带来麻烦。除此之外,显然这些属性实际上并不存在,它们似乎更像是一个错误,因为在文档中没有将它们描述为dateTime object的属性。

我正在尝试使用getTimestamp(),但无法添加时间。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

PHP手册中有完整的示例;

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P1D'));
echo $date->format('Y-m-d') . "\n";

可以在“ PT24H”中更改DateInterval的值。在夏令时期间,24小时不同于1天,PHP将为您安排正确的时区配置。

答案 1 :(得分:1)

如果您正在使用DateTime对象,则要做的就是创建一个间隔,然后使用add方法。像这样:

$dateTime = new DateTime();
$interval = new DateInterval("P0Y0M0DT24H0M0S");
$dateTime->add($interval);