Question

In PHP, how do I get the current time, in UTC, without hard coding knowledge of where my hosting provider is?

For example, I tried the following:

time() + strtotime('January 1, 2000')-strtotime('January 1, 2000 UTC')

and find that it reports a time that is one hour ahead of actual UTC time. I tried this on two different hosting providers in two different time zones with the same results.

Is there a reliable (and, hopefully, cleaner) way to accurately get the UTC time?

I am limited to PHP 4.4.9 so I cannot use the new timezone stuff added to PHP5.

Thanks, in advance.

Was it helpful?

Solution

This seems to work for me. Of course, you'll need to test it on PHP 4 since all of my servers have PHP 5, but the manual claims this should work for PHP 4.

$t = time();
$x = $t+date("Z",$t);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $x);

First time around, I forgot that the date could change between the call to time() and date().

OTHER TIPS

$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');

Does this work for php 4.4.9?

echo gmdate('Y-m-d H:i:s', time());

or if you want it for a specific date:

$time = strtotime('January 1, 2000 UTC');
if($time){
    echo gmdate('Y-m-d H:i:s', $time);
}
$utcTtime = gmmktime();
$unixTimestamp = time();

gmmktime: Get Unix timestamp for a GMT date

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top