我需要在要存储在变量中的日期上添加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()
,但无法添加时间。
我该怎么办?
答案 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);