php – adicione duas horas até a data variável

Quero adicionar 3 minutos a uma variável de data / hora que eu tenho, mas não tenho certeza de como fazer isso. Eu fiz a variável de uma seqüência como esta: (que está no formato de data RFC 2822 btw)

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

Eu converti essa string na data usando este comando:

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

Agora, eu gostaria de adicionar 3 minutos a essa variável, mas eu não tenho certeza de como. Eu usei o seguinte comando no meu script antes, mas isso se aplica à data / hora atual, por isso não tenho certeza de como usar isso para minha variável de tempo:

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

Então, como posso adicionar três minutos à variável de $ time?

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

Use o segundo parâmetro do strtotime para fornecer um tempo de referência:

 $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())); 

Como você já usa o object DateTime, fique com ele:

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

O formato começa com a letra P, para “período”. Cada período de duração é representado por um valor inteiro seguido por um designador de período. Se a duração contiver elementos de tempo, essa parte da especificação é precedida pela letra T.

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

Dito isto, minha solução para um problema semelhante é a seguinte:

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

A coisa é adicionar P ao usar a class DateInterval e T antes das inputs de hora. Para o seu caso, você precisa ir com PT3M por PT3M de 3 minutos. Eu estava tentando adicionar 2 horas e o que eu fiz foi $time->add(new DateInterval('PT2H')); .

Se você olhasse as especificações do intervalo:

 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 por months e M por minutes . É por isso que há um T na frente do tempo.

Pelo menos é isso que eu quero acreditar … ‘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))); 
Intereting Posts