]> granicus.if.org Git - php/commitdiff
- Fixed DateTime::setTimestamp() and added a test for it.
authorDerick Rethans <derick@php.net>
Sun, 27 Jul 2008 19:09:37 +0000 (19:09 +0000)
committerDerick Rethans <derick@php.net>
Sun, 27 Jul 2008 19:09:37 +0000 (19:09 +0000)
ext/date/php_date.c
ext/date/tests/date-set-timestamp.phpt [new file with mode: 0644]

index 60f9d9f4f306d7f198cd83b429483647ac995790..969928cad7f65fa24d2bb481e099da616ab20d61 100644 (file)
@@ -3230,7 +3230,7 @@ PHP_FUNCTION(date_timestamp_set)
        }
        dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC);
        DATE_CHECK_INITIALIZED(dateobj->time, DateTime);
-       timelib_unixtime2gmt(dateobj->time, (timelib_sll)timestamp);
+       timelib_unixtime2local(dateobj->time, (timelib_sll)timestamp);
        timelib_update_ts(dateobj->time, NULL);
 }
 /* }}} */
diff --git a/ext/date/tests/date-set-timestamp.phpt b/ext/date/tests/date-set-timestamp.phpt
new file mode 100644 (file)
index 0000000..7a2b8f7
--- /dev/null
@@ -0,0 +1,16 @@
+--TEST--
+DateTime::setTimestamp()
+--INI--
+date.timezone=Europe/Oslo
+--FILE--
+<?php
+$d = new DateTime( '@1217184864' );
+echo $d->format( "Y-m-d H:i e\n" );
+
+$d = new DateTime();
+$d->setTimestamp( 1217184864 );
+echo $d->format( "Y-m-d H:i e\n" );
+?>
+--EXPECT--
+2008-07-27 18:54 +00:00
+2008-07-27 20:54 Europe/Oslo