Browse Source

- MFH: Fixed a bug in formatting timestamps when DST is active in the default

timezone.
PHP-5.2.1RC1
Derick Rethans 19 years ago
parent
commit
b0b7f4eed1
  1. 4
      ext/date/php_date.c
  2. 11
      ext/date/tests/timestamp-in-dst.phpt

4
ext/date/php_date.c

@ -746,9 +746,9 @@ static char *date_format(char *format, int format_len, timelib_time *t, int loca
offset->abbr = strdup(t->tz_abbr);
} else if (t->zone_type == TIMELIB_ZONETYPE_OFFSET) {
offset = timelib_time_offset_ctor();
offset->offset = (t->z - (t->dst * 60)) * -60;
offset->offset = (t->z) * -60;
offset->leap_secs = 0;
offset->is_dst = t->dst;
offset->is_dst = 0;
offset->abbr = malloc(9); /* GMT±xxxx\0 */
snprintf(offset->abbr, 9, "GMT%c%02d%02d",
localtime ? ((offset->offset < 0) ? '-' : '+') : '+',

11
ext/date/tests/timestamp-in-dst.phpt

@ -0,0 +1,11 @@
--TEST--
Format timestamp in DST test
--INI--
date.timezone=CEST
--FILE--
<?php
error_reporting(E_ALL); // hide e_strict warning about timezones
var_dump( date_create( '@1202996091' )->format( 'c' ) );
?>
--EXPECT--
string(25) "2008-02-14T13:34:51+00:00"
Loading…
Cancel
Save