php – добавить переменную от двух часов до даты

Я хочу добавить 3 минуты к переменной даты / времени, которую я имею, но я не уверен, как это сделать. Я сделал переменную из строки следующим образом: (которая находится в формате даты RFC 2822 btw)

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

Я преобразовал эту строку в дату, используя следующую команду:

 $time = date_format(DateTime::createFromFormat("Ymd\TH:i:sO", $date), "G:i") 

Теперь я хотел бы добавить 3 минуты к этой переменной, но я не уверен, как это сделать. Раньше я использовал следующую команду в моем скрипте, но это относится к текущей дате / времени, поэтому я не уверен, как использовать это для моей временной переменной:

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

Итак, как я могу добавить три минуты к переменной времени $?

 echo $idate="2013-09-25 09:29:44"; $effectiveDate = strtotime("+40 minutes", strtotime($idate)); echo date("Ymd h:i:s",$effectiveDate); 

Используйте второй параметр strtotime для предоставления контрольного времени:

 $date_rfc2822 = '2011-10-18T19:56:00+0200'; $dateTime = DateTime::createFromFormat("Ymd\TH:i:sO", $date_rfc2822); echo date('G:i', strtotime('+2 hours', $dateTime->getTimestamp())); 

Поскольку вы используете объект DateTime уже, придерживайтесь его:

 $time = DateTime::createFromFormat("Ymd\TH:i:sO", $date); $three_minutes = $time->add(new DateInterval('P2H')); ^^--two (2) hours (H) 

Формат начинается с буквы P для «периода». Каждый период продолжительности представлен целым значением, за которым следует указатель периода. Если продолжительность содержит элементы времени, той части спецификации предшествует буква T.

http://www.php.net/manual/en/dateinterval.construct.php

При этом мое решение аналогичной проблемы заключается в следующем:

 // pretend that $date is what you got from mysql // which is like 2013-02-12 23:08:17 echo "<br>"; echo $date; $time = DateTime::createFromFormat("Ymd H:i:s", $date); echo "<br>"; echo $time->format('Hi-s'); $time->add(new DateInterval('PT2H')); echo "<br>"; echo $time->format('Hi-s'); // Outputs: // 2013-02-12 23:08:17 // 23-08-17 // 01-08-17 

Дело в том, чтобы добавить P при использовании класса DateInterval и T перед записями времени. Для вашего случая вам нужно пойти с PT3M для добавления 3 минут. Я пытался добавить 2 часа, а то, что я сделал, было $time->add(new DateInterval('PT2H')); ,

Если вы посмотрите на спецификации интервалов:

 Y years M months D days W weeks. These get converted into days, so can not be combined with D. H hours M minutes S seconds 

M течение months и M течение minutes . Вот почему перед временем существует T

По крайней мере, я хочу верить … »O_O

 //set the date and time $start = '2017-01-01 14:00:00'; //display the converted time you want to add for ex. 1 hour and 20 minutes echo date('Ymd H:i:s',strtotime('+1 hour +20 minutes',strtotime($start)));