summaryrefslogtreecommitdiff
path: root/ext/date/php_date.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/date/php_date.h')
-rw-r--r--ext/date/php_date.h34
1 files changed, 29 insertions, 5 deletions
diff --git a/ext/date/php_date.h b/ext/date/php_date.h
index 2b3ae4dcc1..ff26c0fba3 100644
--- a/ext/date/php_date.h
+++ b/ext/date/php_date.h
@@ -128,13 +128,18 @@ typedef struct _php_interval_obj php_interval_obj;
typedef struct _php_period_obj php_period_obj;
struct _php_date_obj {
- zend_object std;
timelib_time *time;
HashTable *props;
+ zend_object std;
};
+static inline php_date_obj *php_date_obj_from_obj(zend_object *obj) {
+ return (php_date_obj*)((char*)(obj) - XtOffsetOf(php_date_obj, std));
+}
+
+#define Z_PHPDATE_P(zv) php_date_obj_from_obj(Z_OBJ_P((zv)))
+
struct _php_timezone_obj {
- zend_object std;
int initialized;
int type;
union {
@@ -143,17 +148,29 @@ struct _php_timezone_obj {
timelib_abbr_info z; /* TIMELIB_ZONETYPE_ABBR */
} tzi;
HashTable *props;
+ zend_object std;
};
+static inline php_timezone_obj *php_timezone_obj_from_obj(zend_object *obj) {
+ return (php_timezone_obj*)((char*)(obj) - XtOffsetOf(php_timezone_obj, std));
+}
+
+#define Z_PHPTIMEZONE_P(zv) php_timezone_obj_from_obj(Z_OBJ_P((zv)))
+
struct _php_interval_obj {
- zend_object std;
timelib_rel_time *diff;
HashTable *props;
int initialized;
+ zend_object std;
};
+static inline php_interval_obj *php_interval_obj_from_obj(zend_object *obj) {
+ return (php_interval_obj*)((char*)(obj) - XtOffsetOf(php_interval_obj, std));
+}
+
+#define Z_PHPINTERVAL_P(zv) php_interval_obj_from_obj(Z_OBJ_P((zv)))
+
struct _php_period_obj {
- zend_object std;
timelib_time *start;
zend_class_entry *start_ce;
timelib_time *current;
@@ -162,8 +179,15 @@ struct _php_period_obj {
int recurrences;
int initialized;
int include_start_date;
+ zend_object std;
};
+static inline php_period_obj *php_period_obj_from_obj(zend_object *obj) {
+ return (php_period_obj*)((char*)(obj) - XtOffsetOf(php_period_obj, std));
+}
+
+#define Z_PHPPERIOD_P(zv) php_period_obj_from_obj(Z_OBJ_P((zv)))
+
ZEND_BEGIN_MODULE_GLOBALS(date)
char *default_timezone;
char *timezone;
@@ -186,7 +210,7 @@ PHPAPI int php_idate(char format, time_t ts, int localtime TSRMLS_DC);
#define _php_strftime php_strftime
PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gm);
#endif
-PHPAPI char *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC);
+PHPAPI zend_string *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC);
/* Mechanism to set new TZ database */
PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb);