From b66faab7be08d25a5354b46de5d712acd09f478d Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Mon, 28 Jan 2008 20:29:40 +0000 Subject: [PATCH] - Added DateTime::getTimestamp() / date_timestamp_get(). --- ext/date/php_date.c | 28 ++++++++++++++++++++++++++++ ext/date/php_date.h | 1 + 2 files changed, 29 insertions(+) diff --git a/ext/date/php_date.c b/ext/date/php_date.c index f93e2bfa8d..b78f33f39d 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -184,6 +184,7 @@ const zend_function_entry date_functions[] = { PHP_FE(date_date_set, NULL) PHP_FE(date_isodate_set, NULL) PHP_FE(date_timestamp_set, NULL) + PHP_FE(date_timestamp_get, NULL) PHP_FE(timezone_open, NULL) PHP_FE(timezone_name_get, NULL) @@ -218,6 +219,7 @@ const zend_function_entry date_funcs_date[] = { PHP_ME_MAPPING(setDate, date_date_set, NULL, 0) PHP_ME_MAPPING(setISODate, date_isodate_set, NULL, 0) PHP_ME_MAPPING(setTimestamp,date_timestamp_set, NULL, 0) + PHP_ME_MAPPING(getTimestamp,date_timestamp_get, NULL, 0) {NULL, NULL, NULL} }; @@ -2425,6 +2427,32 @@ PHP_FUNCTION(date_timestamp_set) } /* }}} */ +/* {{{ proto long date_timestamp_get(DateTime object) + Gets the Unix timestamp. +*/ +PHP_FUNCTION(date_timestamp_get) +{ + zval *object; + php_date_obj *dateobj; + long timestamp; + int error; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &object, date_ce_date) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + timelib_update_ts(dateobj->time, NULL); + + timestamp = timelib_date_to_int(dateobj->time, &error); + if (error) { + RETURN_FALSE; + } else { + RETVAL_LONG(timestamp); + } +} +/* }}} */ + static int timezone_initialize(timelib_tzinfo **tzi, /*const*/ char *tz TSRMLS_DC) { char *tzid; diff --git a/ext/date/php_date.h b/ext/date/php_date.h index 620e221757..9df995b02e 100644 --- a/ext/date/php_date.h +++ b/ext/date/php_date.h @@ -64,6 +64,7 @@ PHP_FUNCTION(date_time_set); PHP_FUNCTION(date_date_set); PHP_FUNCTION(date_isodate_set); PHP_FUNCTION(date_timestamp_set); +PHP_FUNCTION(date_timestamp_get); PHP_METHOD(DateTimeZone, __construct); PHP_FUNCTION(timezone_open); -- 2.40.0