php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #53221 Date since epoch is incorrect
Submitted: 2010-11-01 22:18 UTC Modified: 2010-11-02 08:54 UTC
From: c dot d dot claxton at googlemail dot com Assigned:
Status: Not a bug Package: Date/time related
PHP Version: 5.3.3 OS: Windows 7
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: c dot d dot claxton at googlemail dot com
New email:
PHP Version: OS:

 

 [2010-11-01 22:18 UTC] c dot d dot claxton at googlemail dot com
Description:
------------
Checked the number of seconds since the epoch using the code shown in the 'Test 
script' section below. There is a discrepancy when number of seconds = 
10000000000 in that time goes backwards, i.e. 1973 to 2001 to 2014 to 2008.

Number of seconds since epoch = 1, date = 1 January 1970 01:00:01 
Number of seconds since epoch = 10, date = 1 January 1970 01:00:10 
Number of seconds since epoch = 100, date = 1 January 1970 01:01:40 
Number of seconds since epoch = 1000, date = 1 January 1970 01:16:40 
Number of seconds since epoch = 10000, date = 1 January 1970 03:46:40 
Number of seconds since epoch = 100000, date = 2 January 1970 04:46:40 
Number of seconds since epoch = 1000000, date = 12 January 1970 14:46:40 
Number of seconds since epoch = 10000000, date = 26 April 1970 18:46:40 
Number of seconds since epoch = 100000000, date = 3 March 1973 10:46:40 
Number of seconds since epoch = 1000000000, date = 9 September 2001 03:46:40 
Number of seconds since epoch = 10000000000, date = 7 September 2014 06:50:08 
Number of seconds since epoch = 100000000000, date = 11 July 2008 06:56:32 

Test script:
---------------
<?php
  for ($i=0; $i<12; $i++) {
    $numberOfSecondsSinceEpoch = pow(10,$i); 
    $date = date("j F Y H:i:s", $numberOfSecondsSinceEpoch);
    echo "Number of seconds since epoch = $numberOfSecondsSinceEpoch, date = $date <br />";
  } 
?>


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-11-01 22:39 UTC] rasmus@php.net
-Status: Open +Status: Bogus
 [2010-11-01 22:39 UTC] rasmus@php.net
It is just a 32-bit signed integer overflow.

Note that even 64-bit Windows still uses 32-bit integers.  

Platforms with 64-bit integers won't overflow and don't have this problem.  Not 
much we can do about this.
 [2010-11-02 08:54 UTC] c dot d dot claxton at googlemail dot com
Many thanks for finding the reason for the problem.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sun Dec 14 15:00:01 2025 UTC