我想添加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')
。