添加3分钟到日期变量


add 3 minutes to date variable

我想添加3分钟的日期/时间变量我有,但我不知道如何做到这一点。我从这样的字符串中创建变量:(这是RFC 2822日期格式btw)

$date = 2011-10-18T19:56:00+0200

我使用以下命令将该字符串转换为日期:

$time = date_format(DateTime::createFromFormat("Y-m-d'TH:i:sO", $date), "G:i")

现在,我想给这个变量加3分钟,但是我不确定怎么加。我以前在脚本中使用过以下命令,但这适用于当前日期/时间,所以我不确定如何将其用于我的时间变量:

$currenttime = date('G:i', strtotime('+2 hours'));

那么,如何在$time变量中添加3分钟呢?

我试过了:

$date = '2011-10-18T19:56:00+0200';
$time = DateTime::createFromFormat("Y-m-d'TH:i:sO", $date);
echo date('G:i', strtotime('+3 minutes', $time->getTimestamp()));

但是它给出了当前时间加上3分钟,它不使用$date变量…

And I try:

$time = DateTime::createFromFormat("Y-m-d'TH:i:sO", $date);
$time = $time->add(new DateInterval('P2H'));

但是当我做的时候

echo date_format($time, 'G:i');

nothing is echo .

有什么帮助吗?

你可以只使用两次strtotime:

$date = strtotime('2011-10-18T19:56:00+0200');
echo date('G:i', strtotime('+3 minutes', $date));

代替

$time = DateTime::createFromFormat("Y-m-d'TH:i:sO", $date);
$time = $time->add(new DateInterval('P2H'));

try (for add 3 minutes)

$time = DateTime::createFromFormat("Y-m-d'TH:i:sO", $date);
$time->add(new DateInterval('PT3M'));

首先,由于使用的是PHP的DateTime类,因此不需要将add方法的输出赋值给变量——它将修改传递给构造函数的DateTime。其次,如果你使用同一个类修改时间,你必须确保在你的时间定义之前有一个T。对于您的示例,DateInterval('P2H')是无效的-它应该是DateInterval('PT2H')