How to I accurately get current UTC time via strtotime?

php, strtotime, utc

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().

Problem

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.

Original source