From: Derick Rethans Date: Sun, 27 Jul 2008 19:10:23 +0000 (+0000) Subject: - MFH: Fixed DateTime::setTimestamp() and added a test for it. X-Git-Tag: php-5.3.0alpha1~87 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7537b5b6d79982e688598a7bbcb6e0cab850bff1;p=php - MFH: Fixed DateTime::setTimestamp() and added a test for it. --- diff --git a/NEWS b/NEWS index c59421e68e..744c04c454 100644 --- a/NEWS +++ b/NEWS @@ -178,7 +178,7 @@ PHP NEWS . timezone_location_get() / DateTimezone::getLocation() for retrieving location information from timezones. . date_timestamp_set() / DateTime::setTimestamp() to set a Unix timestamp - without invoking the date parser. (Scott) + without invoking the date parser. (Scott, Derick) . date_timestamp_get() / DateTime::getTimestamp() to retrieve the Unix timestamp belonging to a date object. . two optional parameters to timezone_transitions_get() / diff --git a/ext/date/php_date.c b/ext/date/php_date.c index e37039df36..04466a1e53 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -3063,7 +3063,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 index 0000000000..5819e09b5d --- /dev/null +++ b/ext/date/tests/date-set-timestamp.phpt @@ -0,0 +1,17 @@ +--TEST-- +DateTime::setTimestamp() +--INI-- +date.timezone=Europe/Oslo +--FILE-- +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 +2008-07-27 18:54 +00:00 +2008-07-27 20:54 Europe/Oslo