|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2019-07-02 18:40 UTC] requinix@php.net
[2019-07-03 08:04 UTC] cmb@php.net
[2019-07-03 08:04 UTC] cmb@php.net
-Status: Open
+Status: Closed
[2019-07-03 08:05 UTC] cmb@php.net
-Assigned To:
+Assigned To: cmb
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 16:00:02 2025 UTC |
Description: ------------ On PHP 7.2.20 64-bit, on Windows, touch() cannot set a file's date to a date after 2038. filemtime() will read such a file's date fine (date was set with an external tool). Test script: --------------- <pre><?php $filename = 'C:\\Test\\TestFile.txt'; for ($i = 2037; $i <= 2040; $i++) { $t = mktime(1,1,1,1,1,$i); echo 'Date: '.date('D, d M Y H:i:s', $t).'<br>'; touch($filename, $t); clearstatcache(true, $filename); $file = filemtime($filename); // This will be wrong for 2039 and 2040 echo 'File: '.date('D, d M Y H:i:s', $file).'<br><br>'; } ?></pre> Expected result: ---------------- Date: Thu, 01 Jan 2037 01:01:01 File: Thu, 01 Jan 2037 01:01:01 Date: Fri, 01 Jan 2038 01:01:01 File: Fri, 01 Jan 2038 01:01:01 Date: Sat, 01 Jan 2039 01:01:01 File: Sat, 01 Jan 2039 01:01:01 Date: Sun, 01 Jan 2040 01:01:01 File: Sun, 01 Jan 2040 01:01:01 Actual result: -------------- Date: Thu, 01 Jan 2037 01:01:01 File: Thu, 01 Jan 2037 01:01:01 Date: Fri, 01 Jan 2038 01:01:01 File: Fri, 01 Jan 2038 01:01:01 Date: Sat, 01 Jan 2039 01:01:01 File: Tue, 25 Nov 1902 18:32:45 <--- Wrong! Date: Sun, 01 Jan 2040 01:01:01 File: Wed, 25 Nov 1903 18:32:45 <--- Wrong!