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
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
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 09:00:02 2025 UTC