name_masked
name_masked

Reputation: 9803

Converting Unix timestamp to Locale timezone

All,

How can I convert to a unix timestamp to date and time in local timezone. For timestamp = 1303374724716, the date ('r', $timestamp) function of PHP gives me Sun, 16 May 2032 22:11:37 +0000 whereas the epoch converter CORRECTLY converts to
GMT: Thu, 21 Apr 2011 08:32:04 GMT
Your timezone: Thu Apr 21 2011 04:32:04 GMT-0400 (Eastern Daylight Time)

I have seen the php.ini file and the default timezone is UTC. I don't understand why the value doesn't even match the GMT/UTC time. Can anyone please help me convert to my local timezone i.e. New_York.

Upvotes: 1

Views: 5143

Answers (2)

Mikel
Mikel

Reputation: 25656

The docs say:

timestamp is optional and defaults to the value of time().

If you run

print time();

you will get a number like 1304640077.

Note that it is 1000 times smaller than the number you are trying to pass it.

In other words, you should be passing it a value in seconds, not milliseconds.

To set the time zone, use date_default_timezone_set, e.g.

date_default_timezone_set('America/New_York');

or set date.timezone in the php.ini file.

Upvotes: 2

Alec Gorge
Alec Gorge

Reputation: 17420

That is because the timestamp you are given is in milliseconds.

Do:

$timestamp = floor(1303374724716/1000);

And everything will work as expected.

Upvotes: 3

Related Questions