Annotation of embedaddon/php/ext/date/php_date.h, revision 1.1
1.1 ! misho 1: /*
! 2: +----------------------------------------------------------------------+
! 3: | PHP Version 5 |
! 4: +----------------------------------------------------------------------+
! 5: | Copyright (c) 1997-2012 The PHP Group |
! 6: +----------------------------------------------------------------------+
! 7: | This source file is subject to version 3.01 of the PHP license, |
! 8: | that is bundled with this package in the file LICENSE, and is |
! 9: | available through the world-wide-web at the following url: |
! 10: | http://www.php.net/license/3_01.txt |
! 11: | If you did not receive a copy of the PHP license and are unable to |
! 12: | obtain it through the world-wide-web, please send a note to |
! 13: | license@php.net so we can mail you a copy immediately. |
! 14: +----------------------------------------------------------------------+
! 15: | Authors: Derick Rethans <derick@derickrethans.nl> |
! 16: +----------------------------------------------------------------------+
! 17: */
! 18:
! 19: /* $Id: php_date.h 321634 2012-01-01 13:15:04Z felipe $ */
! 20:
! 21: #ifndef PHP_DATE_H
! 22: #define PHP_DATE_H
! 23:
! 24: #include "lib/timelib.h"
! 25: #include "Zend/zend_hash.h"
! 26:
! 27: extern zend_module_entry date_module_entry;
! 28: #define phpext_date_ptr &date_module_entry
! 29:
! 30: PHP_FUNCTION(date);
! 31: PHP_FUNCTION(idate);
! 32: PHP_FUNCTION(gmdate);
! 33: PHP_FUNCTION(strtotime);
! 34:
! 35: PHP_FUNCTION(mktime);
! 36: PHP_FUNCTION(gmmktime);
! 37:
! 38: PHP_FUNCTION(checkdate);
! 39:
! 40: #ifdef HAVE_STRFTIME
! 41: PHP_FUNCTION(strftime);
! 42: PHP_FUNCTION(gmstrftime);
! 43: #endif
! 44:
! 45: PHP_FUNCTION(time);
! 46: PHP_FUNCTION(localtime);
! 47: PHP_FUNCTION(getdate);
! 48:
! 49: /* Advanced Interface */
! 50: PHP_METHOD(DateTime, __construct);
! 51: PHP_METHOD(DateTime, __wakeup);
! 52: PHP_METHOD(DateTime, __set_state);
! 53: PHP_FUNCTION(date_create);
! 54: PHP_FUNCTION(date_create_from_format);
! 55: PHP_FUNCTION(date_parse);
! 56: PHP_FUNCTION(date_parse_from_format);
! 57: PHP_FUNCTION(date_get_last_errors);
! 58: PHP_FUNCTION(date_format);
! 59: PHP_FUNCTION(date_modify);
! 60: PHP_FUNCTION(date_add);
! 61: PHP_FUNCTION(date_sub);
! 62: PHP_FUNCTION(date_timezone_get);
! 63: PHP_FUNCTION(date_timezone_set);
! 64: PHP_FUNCTION(date_offset_get);
! 65: PHP_FUNCTION(date_diff);
! 66:
! 67: PHP_FUNCTION(date_time_set);
! 68: PHP_FUNCTION(date_date_set);
! 69: PHP_FUNCTION(date_isodate_set);
! 70: PHP_FUNCTION(date_timestamp_set);
! 71: PHP_FUNCTION(date_timestamp_get);
! 72:
! 73: PHP_METHOD(DateTimeZone, __construct);
! 74: PHP_FUNCTION(timezone_open);
! 75: PHP_FUNCTION(timezone_name_get);
! 76: PHP_FUNCTION(timezone_name_from_abbr);
! 77: PHP_FUNCTION(timezone_offset_get);
! 78: PHP_FUNCTION(timezone_transitions_get);
! 79: PHP_FUNCTION(timezone_location_get);
! 80: PHP_FUNCTION(timezone_identifiers_list);
! 81: PHP_FUNCTION(timezone_abbreviations_list);
! 82: PHP_FUNCTION(timezone_version_get);
! 83:
! 84: PHP_METHOD(DateInterval, __construct);
! 85: PHP_METHOD(DateInterval, __wakeup);
! 86: PHP_METHOD(DateInterval, __set_state);
! 87: PHP_FUNCTION(date_interval_format);
! 88: PHP_FUNCTION(date_interval_create_from_date_string);
! 89:
! 90: PHP_METHOD(DatePeriod, __construct);
! 91:
! 92: /* Options and Configuration */
! 93: PHP_FUNCTION(date_default_timezone_set);
! 94: PHP_FUNCTION(date_default_timezone_get);
! 95:
! 96: /* Astro functions */
! 97: PHP_FUNCTION(date_sunrise);
! 98: PHP_FUNCTION(date_sunset);
! 99: PHP_FUNCTION(date_sun_info);
! 100:
! 101: PHP_RINIT_FUNCTION(date);
! 102: PHP_RSHUTDOWN_FUNCTION(date);
! 103: PHP_MINIT_FUNCTION(date);
! 104: PHP_MSHUTDOWN_FUNCTION(date);
! 105: PHP_MINFO_FUNCTION(date);
! 106:
! 107: typedef struct _php_date_obj php_date_obj;
! 108: typedef struct _php_timezone_obj php_timezone_obj;
! 109: typedef struct _php_interval_obj php_interval_obj;
! 110: typedef struct _php_period_obj php_period_obj;
! 111:
! 112: struct _php_date_obj {
! 113: zend_object std;
! 114: timelib_time *time;
! 115: HashTable *props;
! 116: };
! 117:
! 118: struct _php_timezone_obj {
! 119: zend_object std;
! 120: int initialized;
! 121: int type;
! 122: union {
! 123: timelib_tzinfo *tz; /* TIMELIB_ZONETYPE_ID; */
! 124: timelib_sll utc_offset; /* TIMELIB_ZONETYPE_OFFSET */
! 125: struct /* TIMELIB_ZONETYPE_ABBR */
! 126: {
! 127: timelib_sll utc_offset;
! 128: char *abbr;
! 129: int dst;
! 130: } z;
! 131: } tzi;
! 132: };
! 133:
! 134: struct _php_interval_obj {
! 135: zend_object std;
! 136: timelib_rel_time *diff;
! 137: HashTable *props;
! 138: int initialized;
! 139: };
! 140:
! 141: struct _php_period_obj {
! 142: zend_object std;
! 143: timelib_time *start;
! 144: timelib_time *current;
! 145: timelib_time *end;
! 146: timelib_rel_time *interval;
! 147: int recurrences;
! 148: int initialized;
! 149: int include_start_date;
! 150: };
! 151:
! 152: ZEND_BEGIN_MODULE_GLOBALS(date)
! 153: char *default_timezone;
! 154: char *timezone;
! 155: HashTable *tzcache;
! 156: timelib_error_container *last_errors;
! 157: ZEND_END_MODULE_GLOBALS(date)
! 158:
! 159: #ifdef ZTS
! 160: #define DATEG(v) TSRMG(date_globals_id, zend_date_globals *, v)
! 161: #else
! 162: #define DATEG(v) (date_globals.v)
! 163: #endif
! 164:
! 165: /* Backwards compability wrapper */
! 166: PHPAPI signed long php_parse_date(char *string, signed long *now);
! 167: PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt);
! 168: PHPAPI int php_idate(char format, time_t ts, int localtime);
! 169: #if HAVE_STRFTIME
! 170: #define _php_strftime php_strftime
! 171: PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gm);
! 172: #endif
! 173: PHPAPI char *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC);
! 174:
! 175: /* Mechanism to set new TZ database */
! 176: PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb);
! 177: PHPAPI timelib_tzinfo *get_timezone_info(TSRMLS_D);
! 178:
! 179: /* Grabbing CE's so that other exts can use the date objects too */
! 180: PHPAPI zend_class_entry *php_date_get_date_ce(void);
! 181: PHPAPI zend_class_entry *php_date_get_timezone_ce(void);
! 182:
! 183: /* Functions for creating DateTime objects, and initializing them from a string */
! 184: PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC);
! 185: PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int time_str_len, char *format, zval *timezone_object, int ctor TSRMLS_DC);
! 186:
! 187:
! 188: #endif /* PHP_DATE_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>