Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add an hour onto the time of this datetime string?

Tags:

php

Here's an example of the datetime strings I am working with:

Tue May 15 10:14:30 +0000 2012 

Here is my attempt to add an hour onto it:

$time = 'Tue May 15 10:14:30 +0000 2012'; $dt = new DateTime($time); $dt->add(new DateInterval('P1h')); 

But the second line gives the error that it couldn't be converted.

Thanks.

like image 569
Hard worker Avatar asked May 15 '12 09:05

Hard worker


People also ask

How do you add 2 hours to a timestamp?

$today = date("Y-m-d H:i:s"); $modtime = date( "Y-m-d H:i:s", strtotime( $today ) + (2*60 * 60));

How do you add 30 minutes to a timestamp?

To add 30 minutes to the Date Object first, we get the current time by using the Date. getTime( ) method and then add 30 minute's milliseconds value (30 * 60 * 1000) to it and pass the added value to the Date Object.

How do you add 1 minute to a datetime?

Use the timedelta() class from the datetime module to add minutes to datetime, e.g. result = dt + timedelta(minutes=10) . The timedelta class can be passed a minutes argument and adds the specified number of minutes to the datetime.


1 Answers

You should add a T before the time specification part:

$time = 'Tue May 15 10:14:30 +0000 2012'; $dt = new DateTime($time); $dt->add(new DateInterval('PT1H')); 

See the DateInterval constructor documentation:

The format starts with the letter P, for "period." Each duration period is represented by an integer value followed by a period designator. If the duration contains time elements, that portion of the specification is preceded by the letter T.

(Emphasis added)

like image 65
Jon Avatar answered Sep 19 '22 18:09

Jon