PHP 将 24 小时添加到特定日期

Ber*_*den 1 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')).
Run Code Online (Sandbox Code Playgroud)

如果 sintaxe 与上面类似,那么它可以工作,但它似乎不接受预定义的日期或变量,如下所示:

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

或这个:

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

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

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

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

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

print_r($dateTime);

echo $datetime->date;
Run Code Online (Sandbox Code Playgroud)

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

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

2019-11-21 05:05:00.000000
Run Code Online (Sandbox Code Playgroud)

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

Notice:  Undefined property: DateTime::$date
Run Code Online (Sandbox Code Playgroud)

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

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

我怎么能这么做呢?

Fer*_*uis 5

PHP手册有完整的例子;

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

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