ID:               40568
 Updated by:       paj...@php.net
 Reported By:      JPlissonneauDuquene at bellhelicopter dot textr
-Status:           No Feedback
+Status:           Closed
 Bug Type:         Filesystem function related
 Operating System: win32 only - WinXP
 PHP Version:      5.2.1
 Assigned To:      pajoye
 New Comment:

We use the new API now in 5.3+.


Previous Comments:
------------------------------------------------------------------------

[2008-12-11 01:00:00] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2008-12-03 13:36:42] paj...@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php5.3-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/

I changed the underlying code to use the windows native APIs. Please
try it.

------------------------------------------------------------------------

[2008-07-02 10:18:50] marcello at vezz dot it

Very easy reproduce code (should try it during daylight saving time):

<?php
  $fullfilename='test.dll';
  $ft=filemtime($fullfilename);
  touch($fullfilename.'.md5',$ft);
  $nt=filemtime($fullfilename.'.md5');
  echo $ft.' : '.$nt;
?>

Please get test.dll from http://www.vezz.it/php/test.zip

Original file modification date: 19 feb 2008, 19.08.47

The script output:
1203440927 : 1203437327

The touched file date is one hour back.
19 feb 2008, 18.08.47 instead of 19 feb 2008, 19.08.47

In my opinion, this should really be fixed.

------------------------------------------------------------------------

[2008-05-01 00:38:37] louis at steelbytes dot com

I've build a PHP extension to workaround this ...

http://www.steelbytes.com/?mid=46

------------------------------------------------------------------------

[2008-03-30 17:15:43] kbrobst at surveyresearchpartners dot com

The same "Microsoft feature" is found under Windows Server 2003,
64-bit.  Though previous test cases are well done, this one may be
helpful as well:

Try this experiment:

$timestamp_str = "2005.02.06 14:45:33";
$timestamp_pieces=split('[. :]',$timestamp_str);
$timestamp=mktime($timestamp_pieces[3], $timestamp_pieces[4],
$timestamp_pieces[5], $timestamp_pieces[1], $timestamp_pieces[2],
$timestamp_pieces[0]);
touch("c:\\timestamp_test.txt",$timestamp);

The file timestamp_test.txt shows up in the operating system as having
a modification date of "Sunday, February 06, 2005, 2:45:33 PM" - which
is the desired result.

But now look at the results of filemtime (only when in DST - it will
report the correct timestamp during standard time):

$compare_timestamp=filemtime("c:\\timestamp_test.txt");
$compare_timestamp_str = date("Y.m.d H:i:s",$compare_timestamp);
echo "$timestamp ($timestamp_str) is the original timestamp.<br />\n";
echo "$compare_timestamp ($compare_timestamp_str) is the timestamp on
the file.<br />\n";

The output looks like this:

1107726333 (2005.02.06 14:45:33) is the original timestamp.
1107722733 (2005.02.06 13:45:33) is the timestamp on the file.

The filemtime function reports a timestamp different from what the OS
reports.

I understand the "Microsoft should do it right" concept.  But this
issue is forcing me to have different PHP code based on the server OS -
something I've not had to do much until now.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/40568

-- 
Edit this bug report at http://bugs.php.net/?id=40568&edit=1

Reply via email to