10

I have a timestamp value from PHP: 1188604800000

When I format the time to human readable like this:

date("m/d/Y", 1188604800000)

It prints:

05/21/39635

If I put the number into an online Unix Timestamp converter I get:

Sat, 01 Sep 2007 00:00:00 GMT

What am I doing wrong?

Eric Leschinski
  • 146,994
  • 96
  • 417
  • 335
Joseph U.
  • 4,457
  • 10
  • 41
  • 47

2 Answers2

16

PHP uses seconds-based timestamps, so divide 1188604800 by 1000 and you are good.

php> echo date('Y-m-d', 1188604800000/1000);
2007-09-01
ThiefMaster
  • 310,957
  • 84
  • 592
  • 636
  • For some strange reason I had to add 86400 to get the right date to show up (it was off by a day). Thanks for the code snippit – Joseph U. Apr 19 '12 at 18:03
6

I was having trouble with my date being one day off and I had to manually set the default timezone to match my location by using

<?php date_default_timezone_set("Australia/Perth"); ?>

A list of support timezones can be found here - http://www.php.net/manual/en/timezones.php

(I don't have enough rep to comment so can someone merge that with the actual answer?)

Brad Farleigh
  • 61
  • 1
  • 1