php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
php_date.c File Reference
#include "php.h"
#include "php_main.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "ext/standard/php_versioning.h"
#include "php_date.h"
#include "zend_attributes.h"
#include "zend_interfaces.h"
#include "zend_exceptions.h"
#include "lib/timelib.h"
#include "lib/timelib_private.h"
#include <time.h>
#include "php_date_arginfo.h"
#include "zend_smart_str.h"

Go to the source code of this file.

Data Structures

struct  date_period_it
 

Macros

#define DATE_I64_BUF_LEN   65
 
#define DATE_I64A(i, s, len)
 
#define DATE_A64I(i, s)
 
#define DATE_FORMAT_RFC822   "D, d M y H:i:s O"
 
#define DATE_FORMAT_RFC850   "l, d-M-y H:i:s T"
 
#define DATE_FORMAT_RFC1036   "D, d M y H:i:s O"
 
#define DATE_FORMAT_RFC1123   "D, d M Y H:i:s O"
 
#define DATE_FORMAT_RFC7231   "D, d M Y H:i:s \\G\\M\\T"
 
#define DATE_FORMAT_RFC2822   "D, d M Y H:i:s O"
 
#define DATE_FORMAT_RFC3339   "Y-m-d\\TH:i:sP"
 
#define DATE_FORMAT_ISO8601   "Y-m-d\\TH:i:sO"
 
#define DATE_FORMAT_ISO8601_EXPANDED   "X-m-d\\TH:i:sP"
 
#define DATE_FORMAT_ISO8601_LARGE_YEAR   "x-m-d\\TH:i:sP"
 
#define DATE_FORMAT_RFC3339_EXTENDED   "Y-m-d\\TH:i:s.vP"
 
#define DATE_FORMAT_COOKIE   "l, d-M-Y H:i:s T"
 
#define SUNFUNCS_RET_TIMESTAMP   0
 
#define SUNFUNCS_RET_STRING   1
 
#define SUNFUNCS_RET_DOUBLE   2
 
#define PHP_DATE_TIMEZONE_GROUP_AFRICA   0x0001
 
#define PHP_DATE_TIMEZONE_GROUP_AMERICA   0x0002
 
#define PHP_DATE_TIMEZONE_GROUP_ANTARCTICA   0x0004
 
#define PHP_DATE_TIMEZONE_GROUP_ARCTIC   0x0008
 
#define PHP_DATE_TIMEZONE_GROUP_ASIA   0x0010
 
#define PHP_DATE_TIMEZONE_GROUP_ATLANTIC   0x0020
 
#define PHP_DATE_TIMEZONE_GROUP_AUSTRALIA   0x0040
 
#define PHP_DATE_TIMEZONE_GROUP_EUROPE   0x0080
 
#define PHP_DATE_TIMEZONE_GROUP_INDIAN   0x0100
 
#define PHP_DATE_TIMEZONE_GROUP_PACIFIC   0x0200
 
#define PHP_DATE_TIMEZONE_GROUP_UTC   0x0400
 
#define PHP_DATE_TIMEZONE_GROUP_ALL   0x07FF
 
#define PHP_DATE_TIMEZONE_GROUP_ALL_W_BC   0x0FFF
 
#define PHP_DATE_TIMEZONE_PER_COUNTRY   0x1000
 
#define PHP_DATE_PERIOD_EXCLUDE_START_DATE   0x0001
 
#define PHP_DATE_PERIOD_INCLUDE_END_DATE   0x0002
 
#define DATE_DEFAULT_LATITUDE   "31.7667"
 
#define DATE_DEFAULT_LONGITUDE   "35.2333"
 
#define DATE_SUNSET_ZENITH   "90.833333"
 
#define DATE_SUNRISE_ZENITH   "90.833333"
 
#define DATE_CHECK_INITIALIZED(member, ce)
 
#define DATE_TIMEZONEDB   php_date_global_timezone_db ? php_date_global_timezone_db : timelib_builtin_db()
 
#define PHP_DATE_INTERVAL_ADD_PROPERTY(n, f)
 
#define PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(name, elem)
 
#define add_nominal()
 
#define add(i, ts)
 
#define add_by_index(i, ts)
 
#define add_from_tto(to, ts)
 
#define add_last()
 
#define GET_VALUE_FROM_STRUCT(n, m)
 
#define SET_VALUE_FROM_STRUCT(n, m)
 
#define PHP_DATE_INTERVAL_READ_PROPERTY(element, member, itype, def)
 
#define PHP_DATE_INTERVAL_READ_PROPERTY_I64(element, member)
 
#define PHP_DATE_INTERVAL_READ_PROPERTY_DAYS(member)
 
#define PHP_DATE_INTERVAL_READ_PROPERTY_DOUBLE(element, member, def)
 

Functions

PHPAPI time_t php_time (void)
 
PHPAPI zend_class_entryphp_date_get_date_ce (void)
 
PHPAPI zend_class_entryphp_date_get_immutable_ce (void)
 
PHPAPI zend_class_entryphp_date_get_interface_ce (void)
 
PHPAPI zend_class_entryphp_date_get_timezone_ce (void)
 
PHPAPI zend_class_entryphp_date_get_interval_ce (void)
 
PHPAPI zend_class_entryphp_date_get_period_ce (void)
 
 PHP_RINIT_FUNCTION (date)
 
 PHP_RSHUTDOWN_FUNCTION (date)
 
 ZEND_MODULE_POST_ZEND_DEACTIVATE_D (date)
 
 PHP_MINIT_FUNCTION (date)
 
 PHP_MSHUTDOWN_FUNCTION (date)
 
 PHP_MINFO_FUNCTION (date)
 
PHPAPI timelib_tzinfoget_timezone_info (void)
 
PHPAPI zend_stringphp_format_date_obj (const char *format, size_t format_len, php_date_obj *date_obj)
 
PHPAPI zend_stringphp_format_date (const char *format, size_t format_len, time_t ts, bool localtime)
 
PHPAPI int php_idate (char format, time_t ts, bool localtime)
 
 PHP_FUNCTION (date)
 
 PHP_FUNCTION (gmdate)
 
 PHP_FUNCTION (idate)
 
PHPAPI void php_date_set_tzdb (timelib_tzdb *tzdb)
 
PHPAPI zend_long php_parse_date (const char *string, zend_long *now)
 
 PHP_FUNCTION (strtotime)
 
PHPAPI void php_mktime (INTERNAL_FUNCTION_PARAMETERS, bool gmt)
 
 PHP_FUNCTION (mktime)
 
 PHP_FUNCTION (gmmktime)
 
 PHP_FUNCTION (checkdate)
 
PHPAPI void php_strftime (INTERNAL_FUNCTION_PARAMETERS, bool gmt)
 
 PHP_FUNCTION (strftime)
 
 PHP_FUNCTION (gmstrftime)
 
 PHP_FUNCTION (time)
 
 PHP_FUNCTION (localtime)
 
 PHP_FUNCTION (getdate)
 
PHPAPI zvalphp_date_instantiate (zend_class_entry *pce, zval *object)
 
PHPAPI bool php_date_initialize (php_date_obj *dateobj, const char *time_str, size_t time_str_len, const char *format, zval *timezone_object, int flags)
 
PHPAPI void php_date_initialize_from_ts_long (php_date_obj *dateobj, zend_long sec, int usec)
 
PHPAPI bool php_date_initialize_from_ts_double (php_date_obj *dateobj, double ts)
 
 PHP_FUNCTION (date_create)
 
 PHP_FUNCTION (date_create_immutable)
 
 PHP_FUNCTION (date_create_from_format)
 
 PHP_FUNCTION (date_create_immutable_from_format)
 
 PHP_METHOD (DateTime, __construct)
 
 PHP_METHOD (DateTimeImmutable, __construct)
 
 PHP_METHOD (DateTime, createFromImmutable)
 
 PHP_METHOD (DateTime, createFromInterface)
 
 PHP_METHOD (DateTime, createFromTimestamp)
 
 PHP_METHOD (DateTimeImmutable, createFromMutable)
 
 PHP_METHOD (DateTimeImmutable, createFromInterface)
 
 PHP_METHOD (DateTimeImmutable, createFromTimestamp)
 
 PHP_METHOD (DateTime, __set_state)
 
 PHP_METHOD (DateTimeImmutable, __set_state)
 
 PHP_METHOD (DateTime, __serialize)
 
 PHP_METHOD (DateTimeImmutable, __serialize)
 
 PHP_METHOD (DateTime, __unserialize)
 
 PHP_METHOD (DateTimeImmutable, __unserialize)
 
 PHP_METHOD (DateTime, __wakeup)
 
 PHP_METHOD (DateTimeImmutable, __wakeup)
 
 PHP_FUNCTION (date_get_last_errors)
 
 PHP_FUNCTION (date_parse)
 
 PHP_FUNCTION (date_parse_from_format)
 
 PHP_FUNCTION (date_format)
 
 PHP_FUNCTION (date_modify)
 
 PHP_METHOD (DateTime, modify)
 
 PHP_METHOD (DateTimeImmutable, modify)
 
 PHP_FUNCTION (date_add)
 
 PHP_METHOD (DateTimeImmutable, add)
 
 PHP_FUNCTION (date_sub)
 
 PHP_METHOD (DateTime, sub)
 
 PHP_METHOD (DateTimeImmutable, sub)
 
 PHP_FUNCTION (date_timezone_get)
 
 PHP_FUNCTION (date_timezone_set)
 
 PHP_METHOD (DateTimeImmutable, setTimezone)
 
 PHP_FUNCTION (date_offset_get)
 
 PHP_FUNCTION (date_time_set)
 
 PHP_METHOD (DateTimeImmutable, setTime)
 
 PHP_FUNCTION (date_date_set)
 
 PHP_METHOD (DateTimeImmutable, setDate)
 
 PHP_FUNCTION (date_isodate_set)
 
 PHP_METHOD (DateTimeImmutable, setISODate)
 
 PHP_FUNCTION (date_timestamp_set)
 
 PHP_METHOD (DateTimeImmutable, setTimestamp)
 
 PHP_METHOD (DateTimeImmutable, setMicrosecond)
 
 PHP_METHOD (DateTime, setMicrosecond)
 
 PHP_FUNCTION (date_timestamp_get)
 
 ZEND_PARSE_PARAMETERS_NONE ()
 
 DATE_CHECK_INITIALIZED (dateobj->time, Z_OBJCE_P(object))
 
 RETURN_LONG ((zend_long) dateobj->time->us)
 
 PHP_FUNCTION (date_diff)
 
 PHP_FUNCTION (timezone_open)
 
 PHP_METHOD (DateTimeZone, __construct)
 
 PHP_METHOD (DateTimeZone, __set_state)
 
 PHP_METHOD (DateTimeZone, __wakeup)
 
 PHP_METHOD (DateTimeZone, __serialize)
 
 PHP_METHOD (DateTimeZone, __unserialize)
 
 PHP_FUNCTION (timezone_name_get)
 
 PHP_FUNCTION (timezone_name_from_abbr)
 
 PHP_FUNCTION (timezone_offset_get)
 
 PHP_FUNCTION (timezone_transitions_get)
 
 PHP_FUNCTION (timezone_location_get)
 
 PHP_METHOD (DateInterval, __construct)
 
 PHP_METHOD (DateInterval, __set_state)
 
 PHP_METHOD (DateInterval, __serialize)
 
 PHP_METHOD (DateInterval, __unserialize)
 
 PHP_METHOD (DateInterval, __wakeup)
 
 PHP_FUNCTION (date_interval_create_from_date_string)
 
 PHP_METHOD (DateInterval, createFromDateString)
 
 PHP_FUNCTION (date_interval_format)
 
 PHP_METHOD (DatePeriod, createFromISO8601String)
 
 PHP_METHOD (DatePeriod, __construct)
 
 PHP_METHOD (DatePeriod, getStartDate)
 
 PHP_METHOD (DatePeriod, getEndDate)
 
 PHP_METHOD (DatePeriod, getDateInterval)
 
 PHP_METHOD (DatePeriod, getRecurrences)
 
 PHP_METHOD (DatePeriod, getIterator)
 
 PHP_FUNCTION (timezone_identifiers_list)
 
 PHP_FUNCTION (timezone_version_get)
 
 PHP_FUNCTION (timezone_abbreviations_list)
 
 PHP_FUNCTION (date_default_timezone_set)
 
 PHP_FUNCTION (date_default_timezone_get)
 
 PHP_FUNCTION (date_sunrise)
 
 PHP_FUNCTION (date_sunset)
 
 PHP_FUNCTION (date_sun_info)
 
 PHP_METHOD (DatePeriod, __set_state)
 
 PHP_METHOD (DatePeriod, __serialize)
 
 PHP_METHOD (DatePeriod, __unserialize)
 
 PHP_METHOD (DatePeriod, __wakeup)
 

Variables

timelib_tzdbphp_date_global_timezone_db
 
int php_date_global_timezone_db_enabled
 
zend_module_entry date_module_entry
 
php_date_objdateobj
 
 object = ZEND_THIS
 

Macro Definition Documentation

◆ add

#define add ( i,
ts )
Value:
array_init(&element); \
add_assoc_long(&element, "ts", ts); \
add_assoc_str(&element, "time", php_format_date(DATE_FORMAT_ISO8601_LARGE_YEAR, 13, ts, 0)); \
add_assoc_long(&element, "offset", tzobj->tzi.tz->type[tzobj->tzi.tz->trans_idx[i]].offset); \
add_assoc_bool(&element, "isdst", tzobj->tzi.tz->type[tzobj->tzi.tz->trans_idx[i]].isdst); \
add_assoc_string(&element, "abbr", &tzobj->tzi.tz->timezone_abbr[tzobj->tzi.tz->type[tzobj->tzi.tz->trans_idx[i]].abbr_idx]); \
add_next_index_zval(return_value, &element);
PHPAPI zend_string * php_format_date(const char *format, size_t format_len, time_t ts, bool localtime)
Definition php_date.c:875
#define DATE_FORMAT_ISO8601_LARGE_YEAR
Definition php_date.c:192
#define array_init(arg)
Definition zend_API.h:537
zval * return_value

◆ add_by_index

#define add_by_index ( i,
ts )
Value:
array_init(&element); \
add_assoc_long(&element, "ts", ts); \
add_assoc_str(&element, "time", php_format_date(DATE_FORMAT_ISO8601_LARGE_YEAR, 13, ts, 0)); \
add_assoc_long(&element, "offset", tzobj->tzi.tz->type[i].offset); \
add_assoc_bool(&element, "isdst", tzobj->tzi.tz->type[i].isdst); \
add_assoc_string(&element, "abbr", &tzobj->tzi.tz->timezone_abbr[tzobj->tzi.tz->type[i].abbr_idx]); \
add_next_index_zval(return_value, &element);

◆ add_from_tto

#define add_from_tto ( to,
ts )
Value:
array_init(&element); \
add_assoc_long(&element, "ts", ts); \
add_assoc_str(&element, "time", php_format_date(DATE_FORMAT_ISO8601_LARGE_YEAR, 13, ts, 0)); \
add_assoc_long(&element, "offset", (to)->offset); \
add_assoc_bool(&element, "isdst", (to)->is_dst); \
add_assoc_string(&element, "abbr", (to)->abbr); \
add_next_index_zval(return_value, &element);
zend_long offset

◆ add_last

#define add_last ( )
Value:
add(tzobj->tzi.tz->bit64.timecnt - 1, timestamp_begin)
#define add(i, ts)

◆ add_nominal

#define add_nominal ( )
Value:
array_init(&element); \
add_assoc_long(&element, "ts", timestamp_begin); \
add_assoc_str(&element, "time", php_format_date(DATE_FORMAT_ISO8601_LARGE_YEAR, 13, timestamp_begin, 0)); \
add_assoc_long(&element, "offset", tzobj->tzi.tz->type[0].offset); \
add_assoc_bool(&element, "isdst", tzobj->tzi.tz->type[0].isdst); \
add_assoc_string(&element, "abbr", &tzobj->tzi.tz->timezone_abbr[tzobj->tzi.tz->type[0].abbr_idx]); \
add_next_index_zval(return_value, &element);

◆ DATE_A64I

#define DATE_A64I ( i,
s )
Value:
i = strtoll(s, NULL, 10)
char s[4]
Definition cdf.c:77
#define NULL
Definition gdcache.h:45
#define strtoll(s, f, b)
Definition parse_date.c:43

Definition at line 53 of file php_date.c.

◆ DATE_CHECK_INITIALIZED

#define DATE_CHECK_INITIALIZED ( member,
ce )
Value:
if (UNEXPECTED(!member)) { \
date_throw_uninitialized_error(ce); \
RETURN_THROWS(); \
}
#define UNEXPECTED(condition)

Definition at line 327 of file php_date.c.

◆ DATE_DEFAULT_LATITUDE

#define DATE_DEFAULT_LATITUDE   "31.7667"

Definition at line 247 of file php_date.c.

◆ DATE_DEFAULT_LONGITUDE

#define DATE_DEFAULT_LONGITUDE   "35.2333"

Definition at line 248 of file php_date.c.

◆ DATE_FORMAT_COOKIE

#define DATE_FORMAT_COOKIE   "l, d-M-Y H:i:s T"

Definition at line 210 of file php_date.c.

◆ DATE_FORMAT_ISO8601

#define DATE_FORMAT_ISO8601   "Y-m-d\\TH:i:sO"

Definition at line 164 of file php_date.c.

◆ DATE_FORMAT_ISO8601_EXPANDED

#define DATE_FORMAT_ISO8601_EXPANDED   "X-m-d\\TH:i:sP"

Definition at line 186 of file php_date.c.

◆ DATE_FORMAT_ISO8601_LARGE_YEAR

#define DATE_FORMAT_ISO8601_LARGE_YEAR   "x-m-d\\TH:i:sP"

Definition at line 192 of file php_date.c.

◆ DATE_FORMAT_RFC1036

#define DATE_FORMAT_RFC1036   "D, d M y H:i:s O"

Definition at line 100 of file php_date.c.

◆ DATE_FORMAT_RFC1123

#define DATE_FORMAT_RFC1123   "D, d M Y H:i:s O"

Definition at line 107 of file php_date.c.

◆ DATE_FORMAT_RFC2822

#define DATE_FORMAT_RFC2822   "D, d M Y H:i:s O"

Definition at line 134 of file php_date.c.

◆ DATE_FORMAT_RFC3339

#define DATE_FORMAT_RFC3339   "Y-m-d\\TH:i:sP"

Definition at line 156 of file php_date.c.

◆ DATE_FORMAT_RFC3339_EXTENDED

#define DATE_FORMAT_RFC3339_EXTENDED   "Y-m-d\\TH:i:s.vP"

Definition at line 202 of file php_date.c.

◆ DATE_FORMAT_RFC7231

#define DATE_FORMAT_RFC7231   "D, d M Y H:i:s \\G\\M\\T"

Definition at line 112 of file php_date.c.

◆ DATE_FORMAT_RFC822

#define DATE_FORMAT_RFC822   "D, d M y H:i:s O"

Definition at line 82 of file php_date.c.

◆ DATE_FORMAT_RFC850

#define DATE_FORMAT_RFC850   "l, d-M-y H:i:s T"

Definition at line 90 of file php_date.c.

◆ DATE_I64_BUF_LEN

#define DATE_I64_BUF_LEN   65

Definition at line 47 of file php_date.c.

◆ DATE_I64A

#define DATE_I64A ( i,
s,
len )
Value:
do { \
int st = snprintf(s, len, "%lld", i); \
s[st] = '\0'; \
} while (0);
size_t len
Definition apprentice.c:174
#define snprintf

Definition at line 48 of file php_date.c.

◆ DATE_SUNRISE_ZENITH

#define DATE_SUNRISE_ZENITH   "90.833333"

Definition at line 254 of file php_date.c.

◆ DATE_SUNSET_ZENITH

#define DATE_SUNSET_ZENITH   "90.833333"

Definition at line 251 of file php_date.c.

◆ DATE_TIMEZONEDB

Definition at line 450 of file php_date.c.

◆ GET_VALUE_FROM_STRUCT

#define GET_VALUE_FROM_STRUCT ( n,
m )
Value:
value = obj->diff->n; \
break; \
}
#define zend_string_equals_literal(str, literal)
zend_string * name
value

◆ PHP_DATE_INTERVAL_ADD_PROPERTY

#define PHP_DATE_INTERVAL_ADD_PROPERTY ( n,
f )
Value:
ZVAL_LONG(&zv, (zend_long)intervalobj->diff->f); \
zend_hash_str_update(props, n, sizeof(n)-1, &zv);
zval * zv
Definition ffi.c:3975
zend_long n
Definition ffi.c:4979
int32_t zend_long
Definition zend_long.h:42
#define ZVAL_LONG(z, l)

◆ PHP_DATE_INTERVAL_READ_PROPERTY

#define PHP_DATE_INTERVAL_READ_PROPERTY ( element,
member,
itype,
def )
Value:
do { \
zval *z_arg = zend_hash_str_find(myht, element, sizeof(element) - 1); \
if (z_arg && Z_TYPE_P(z_arg) <= IS_STRING) { \
(*intobj)->diff->member = (itype)zval_get_long(z_arg); \
} else { \
(*intobj)->diff->member = (itype)def; \
} \
} while (0);
struct _zval_struct zval
ZEND_API zval *ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *str, size_t len)
Definition zend_hash.c:2689
#define Z_TYPE_P(zval_p)
Definition zend_types.h:660
#define IS_STRING
Definition zend_types.h:606

◆ PHP_DATE_INTERVAL_READ_PROPERTY_DAYS

#define PHP_DATE_INTERVAL_READ_PROPERTY_DAYS ( member)
Value:
do { \
zval *z_arg = zend_hash_str_find(myht, "days", sizeof("days") - 1); \
if (z_arg && Z_TYPE_P(z_arg) == IS_FALSE) { \
(*intobj)->diff->member = TIMELIB_UNSET; \
} else if (z_arg && Z_TYPE_P(z_arg) <= IS_STRING) { \
zend_string *str = zval_get_string(z_arg); \
DATE_A64I((*intobj)->diff->member, ZSTR_VAL(str)); \
zend_string_release(str); \
} else { \
(*intobj)->diff->member = -1LL; \
} \
} while (0);
#define TIMELIB_UNSET
Definition timelib.h:382
struct _zend_string zend_string
#define ZSTR_VAL(zstr)
Definition zend_string.h:68
#define IS_FALSE
Definition zend_types.h:602

◆ PHP_DATE_INTERVAL_READ_PROPERTY_DOUBLE

#define PHP_DATE_INTERVAL_READ_PROPERTY_DOUBLE ( element,
member,
def )
Value:
do { \
zval *z_arg = zend_hash_str_find(myht, element, sizeof(element) - 1); \
if (z_arg) { \
(*intobj)->diff->member = (double)zval_get_double(z_arg); \
} else { \
(*intobj)->diff->member = (double)def; \
} \
} while (0);

◆ PHP_DATE_INTERVAL_READ_PROPERTY_I64

#define PHP_DATE_INTERVAL_READ_PROPERTY_I64 ( element,
member )
Value:
do { \
zval *z_arg = zend_hash_str_find(myht, element, sizeof(element) - 1); \
if (z_arg && Z_TYPE_P(z_arg) <= IS_STRING) { \
zend_string *tmp_str; \
zend_string *str = zval_get_tmp_string(z_arg, &tmp_str); \
DATE_A64I((*intobj)->diff->member, ZSTR_VAL(str)); \
zend_tmp_string_release(tmp_str); \
} else { \
(*intobj)->diff->member = -1LL; \
} \
} while (0);

◆ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT

#define PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT ( name,
elem )
Value:
if (parsed_time->elem == TIMELIB_UNSET) { \
add_assoc_bool(return_value, #name, 0); \
} else { \
add_assoc_long(return_value, #name, parsed_time->elem); \
}

◆ PHP_DATE_PERIOD_EXCLUDE_START_DATE

#define PHP_DATE_PERIOD_EXCLUDE_START_DATE   0x0001

Definition at line 231 of file php_date.c.

◆ PHP_DATE_PERIOD_INCLUDE_END_DATE

#define PHP_DATE_PERIOD_INCLUDE_END_DATE   0x0002

Definition at line 232 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_AFRICA

#define PHP_DATE_TIMEZONE_GROUP_AFRICA   0x0001

Definition at line 216 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_ALL

#define PHP_DATE_TIMEZONE_GROUP_ALL   0x07FF

Definition at line 227 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_ALL_W_BC

#define PHP_DATE_TIMEZONE_GROUP_ALL_W_BC   0x0FFF

Definition at line 228 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_AMERICA

#define PHP_DATE_TIMEZONE_GROUP_AMERICA   0x0002

Definition at line 217 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_ANTARCTICA

#define PHP_DATE_TIMEZONE_GROUP_ANTARCTICA   0x0004

Definition at line 218 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_ARCTIC

#define PHP_DATE_TIMEZONE_GROUP_ARCTIC   0x0008

Definition at line 219 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_ASIA

#define PHP_DATE_TIMEZONE_GROUP_ASIA   0x0010

Definition at line 220 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_ATLANTIC

#define PHP_DATE_TIMEZONE_GROUP_ATLANTIC   0x0020

Definition at line 221 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_AUSTRALIA

#define PHP_DATE_TIMEZONE_GROUP_AUSTRALIA   0x0040

Definition at line 222 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_EUROPE

#define PHP_DATE_TIMEZONE_GROUP_EUROPE   0x0080

Definition at line 223 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_INDIAN

#define PHP_DATE_TIMEZONE_GROUP_INDIAN   0x0100

Definition at line 224 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_PACIFIC

#define PHP_DATE_TIMEZONE_GROUP_PACIFIC   0x0200

Definition at line 225 of file php_date.c.

◆ PHP_DATE_TIMEZONE_GROUP_UTC

#define PHP_DATE_TIMEZONE_GROUP_UTC   0x0400

Definition at line 226 of file php_date.c.

◆ PHP_DATE_TIMEZONE_PER_COUNTRY

#define PHP_DATE_TIMEZONE_PER_COUNTRY   0x1000

Definition at line 229 of file php_date.c.

◆ SET_VALUE_FROM_STRUCT

#define SET_VALUE_FROM_STRUCT ( n,
m )
Value:
obj->diff->n = zval_get_long(value); \
break; \
}

◆ SUNFUNCS_RET_DOUBLE

#define SUNFUNCS_RET_DOUBLE   2

Definition at line 214 of file php_date.c.

◆ SUNFUNCS_RET_STRING

#define SUNFUNCS_RET_STRING   1

Definition at line 213 of file php_date.c.

◆ SUNFUNCS_RET_TIMESTAMP

#define SUNFUNCS_RET_TIMESTAMP   0

Definition at line 212 of file php_date.c.

Function Documentation

◆ DATE_CHECK_INITIALIZED()

DATE_CHECK_INITIALIZED ( dateobj-> time,
Z_OBJCE_P(object)  )

◆ get_timezone_info()

PHPAPI timelib_tzinfo * get_timezone_info ( void )

Definition at line 573 of file php_date.c.

◆ php_date_get_date_ce()

PHPAPI zend_class_entry * php_date_get_date_ce ( void )

Definition at line 274 of file php_date.c.

◆ php_date_get_immutable_ce()

PHPAPI zend_class_entry * php_date_get_immutable_ce ( void )

Definition at line 279 of file php_date.c.

◆ php_date_get_interface_ce()

PHPAPI zend_class_entry * php_date_get_interface_ce ( void )

Definition at line 284 of file php_date.c.

◆ php_date_get_interval_ce()

PHPAPI zend_class_entry * php_date_get_interval_ce ( void )

Definition at line 294 of file php_date.c.

◆ php_date_get_period_ce()

PHPAPI zend_class_entry * php_date_get_period_ce ( void )

Definition at line 299 of file php_date.c.

◆ php_date_get_timezone_ce()

PHPAPI zend_class_entry * php_date_get_timezone_ce ( void )

Definition at line 289 of file php_date.c.

◆ php_date_initialize()

PHPAPI bool php_date_initialize ( php_date_obj * dateobj,
const char * time_str,
size_t time_str_len,
const char * format,
zval * timezone_object,
int flags )

Definition at line 2403 of file php_date.c.

◆ php_date_initialize_from_ts_double()

PHPAPI bool php_date_initialize_from_ts_double ( php_date_obj * dateobj,
double ts )

Definition at line 2529 of file php_date.c.

◆ php_date_initialize_from_ts_long()

PHPAPI void php_date_initialize_from_ts_long ( php_date_obj * dateobj,
zend_long sec,
int usec )

Definition at line 2519 of file php_date.c.

◆ php_date_instantiate()

PHPAPI zval * php_date_instantiate ( zend_class_entry * pce,
zval * object )

Definition at line 2356 of file php_date.c.

◆ php_date_set_tzdb()

PHPAPI void php_date_set_tzdb ( timelib_tzdb * tzdb)

Definition at line 1045 of file php_date.c.

◆ php_format_date()

PHPAPI zend_string * php_format_date ( const char * format,
size_t format_len,
time_t ts,
bool localtime )

Definition at line 875 of file php_date.c.

◆ php_format_date_obj()

PHPAPI zend_string * php_format_date_obj ( const char * format,
size_t format_len,
php_date_obj * date_obj )

Definition at line 846 of file php_date.c.

◆ PHP_FUNCTION() [1/48]

PHP_FUNCTION ( checkdate )

Definition at line 1239 of file php_date.c.

◆ PHP_FUNCTION() [2/48]

PHP_FUNCTION ( date )

Definition at line 999 of file php_date.c.

◆ PHP_FUNCTION() [3/48]

PHP_FUNCTION ( date_add )

Definition at line 3434 of file php_date.c.

◆ PHP_FUNCTION() [4/48]

PHP_FUNCTION ( date_create )

Definition at line 2578 of file php_date.c.

◆ PHP_FUNCTION() [5/48]

PHP_FUNCTION ( date_create_from_format )

Definition at line 2620 of file php_date.c.

◆ PHP_FUNCTION() [6/48]

PHP_FUNCTION ( date_create_immutable )

Definition at line 2599 of file php_date.c.

◆ PHP_FUNCTION() [7/48]

Definition at line 2642 of file php_date.c.

◆ PHP_FUNCTION() [8/48]

PHP_FUNCTION ( date_date_set )

Definition at line 3747 of file php_date.c.

◆ PHP_FUNCTION() [9/48]

PHP_FUNCTION ( date_default_timezone_get )

Definition at line 5480 of file php_date.c.

◆ PHP_FUNCTION() [10/48]

PHP_FUNCTION ( date_default_timezone_set )

Definition at line 5457 of file php_date.c.

◆ PHP_FUNCTION() [11/48]

PHP_FUNCTION ( date_diff )

Definition at line 3989 of file php_date.c.

◆ PHP_FUNCTION() [12/48]

PHP_FUNCTION ( date_format )

Definition at line 3244 of file php_date.c.

◆ PHP_FUNCTION() [13/48]

PHP_FUNCTION ( date_get_last_errors )

Definition at line 3123 of file php_date.c.

◆ PHP_FUNCTION() [14/48]

Definition at line 4904 of file php_date.c.

◆ PHP_FUNCTION() [15/48]

PHP_FUNCTION ( date_interval_format )

Definition at line 5040 of file php_date.c.

◆ PHP_FUNCTION() [16/48]

PHP_FUNCTION ( date_isodate_set )

Definition at line 3799 of file php_date.c.

◆ PHP_FUNCTION() [17/48]

PHP_FUNCTION ( date_modify )

Definition at line 3342 of file php_date.c.

◆ PHP_FUNCTION() [18/48]

PHP_FUNCTION ( date_offset_get )

Definition at line 3650 of file php_date.c.

◆ PHP_FUNCTION() [19/48]

PHP_FUNCTION ( date_parse )

Definition at line 3211 of file php_date.c.

◆ PHP_FUNCTION() [20/48]

PHP_FUNCTION ( date_parse_from_format )

Definition at line 3227 of file php_date.c.

◆ PHP_FUNCTION() [21/48]

PHP_FUNCTION ( date_sub )

Definition at line 3491 of file php_date.c.

◆ PHP_FUNCTION() [22/48]

PHP_FUNCTION ( date_sun_info )

Definition at line 5607 of file php_date.c.

◆ PHP_FUNCTION() [23/48]

PHP_FUNCTION ( date_sunrise )

Definition at line 5593 of file php_date.c.

◆ PHP_FUNCTION() [24/48]

PHP_FUNCTION ( date_sunset )

Definition at line 5600 of file php_date.c.

◆ PHP_FUNCTION() [25/48]

PHP_FUNCTION ( date_time_set )

Definition at line 3697 of file php_date.c.

◆ PHP_FUNCTION() [26/48]

PHP_FUNCTION ( date_timestamp_get )

Definition at line 3945 of file php_date.c.

◆ PHP_FUNCTION() [27/48]

PHP_FUNCTION ( date_timestamp_set )

Definition at line 3847 of file php_date.c.

◆ PHP_FUNCTION() [28/48]

PHP_FUNCTION ( date_timezone_get )

Definition at line 3571 of file php_date.c.

◆ PHP_FUNCTION() [29/48]

PHP_FUNCTION ( date_timezone_set )

Definition at line 3616 of file php_date.c.

◆ PHP_FUNCTION() [30/48]

PHP_FUNCTION ( getdate )

Definition at line 1438 of file php_date.c.

◆ PHP_FUNCTION() [31/48]

PHP_FUNCTION ( gmdate )

Definition at line 1006 of file php_date.c.

◆ PHP_FUNCTION() [32/48]

PHP_FUNCTION ( gmmktime )

Definition at line 1232 of file php_date.c.

◆ PHP_FUNCTION() [33/48]

PHP_FUNCTION ( gmstrftime )

Definition at line 1366 of file php_date.c.

◆ PHP_FUNCTION() [34/48]

PHP_FUNCTION ( idate )

Definition at line 1013 of file php_date.c.

◆ PHP_FUNCTION() [35/48]

PHP_FUNCTION ( localtime )

Definition at line 1382 of file php_date.c.

◆ PHP_FUNCTION() [36/48]

PHP_FUNCTION ( mktime )

Definition at line 1225 of file php_date.c.

◆ PHP_FUNCTION() [37/48]

PHP_FUNCTION ( strftime )

Definition at line 1359 of file php_date.c.

◆ PHP_FUNCTION() [38/48]

PHP_FUNCTION ( strtotime )

Definition at line 1082 of file php_date.c.

◆ PHP_FUNCTION() [39/48]

PHP_FUNCTION ( time )

Definition at line 1373 of file php_date.c.

◆ PHP_FUNCTION() [40/48]

PHP_FUNCTION ( timezone_abbreviations_list )

Definition at line 5422 of file php_date.c.

◆ PHP_FUNCTION() [41/48]

PHP_FUNCTION ( timezone_identifiers_list )

Definition at line 5370 of file php_date.c.

◆ PHP_FUNCTION() [42/48]

PHP_FUNCTION ( timezone_location_get )

Definition at line 4445 of file php_date.c.

◆ PHP_FUNCTION() [43/48]

PHP_FUNCTION ( timezone_name_from_abbr )

Definition at line 4254 of file php_date.c.

◆ PHP_FUNCTION() [44/48]

PHP_FUNCTION ( timezone_name_get )

Definition at line 4239 of file php_date.c.

◆ PHP_FUNCTION() [45/48]

PHP_FUNCTION ( timezone_offset_get )

Definition at line 4279 of file php_date.c.

◆ PHP_FUNCTION() [46/48]

PHP_FUNCTION ( timezone_open )

Definition at line 4062 of file php_date.c.

◆ PHP_FUNCTION() [47/48]

PHP_FUNCTION ( timezone_transitions_get )

Definition at line 4311 of file php_date.c.

◆ PHP_FUNCTION() [48/48]

PHP_FUNCTION ( timezone_version_get )

Definition at line 5410 of file php_date.c.

◆ php_idate()

PHPAPI int php_idate ( char format,
time_t ts,
bool localtime )

Definition at line 901 of file php_date.c.

◆ PHP_METHOD() [1/50]

PHP_METHOD ( DateInterval ,
__construct  )

Definition at line 4634 of file php_date.c.

◆ PHP_METHOD() [2/50]

PHP_METHOD ( DateInterval ,
__serialize  )

Definition at line 4800 of file php_date.c.

◆ PHP_METHOD() [3/50]

PHP_METHOD ( DateInterval ,
__set_state  )

Definition at line 4781 of file php_date.c.

◆ PHP_METHOD() [4/50]

PHP_METHOD ( DateInterval ,
__unserialize  )

Definition at line 4854 of file php_date.c.

◆ PHP_METHOD() [5/50]

PHP_METHOD ( DateInterval ,
__wakeup  )

Definition at line 4874 of file php_date.c.

◆ PHP_METHOD() [6/50]

PHP_METHOD ( DateInterval ,
createFromDateString  )

Definition at line 4938 of file php_date.c.

◆ PHP_METHOD() [7/50]

PHP_METHOD ( DatePeriod ,
__construct  )

Definition at line 5188 of file php_date.c.

◆ PHP_METHOD() [8/50]

PHP_METHOD ( DatePeriod ,
__serialize  )

Definition at line 5904 of file php_date.c.

◆ PHP_METHOD() [9/50]

PHP_METHOD ( DatePeriod ,
__set_state  )

Definition at line 5882 of file php_date.c.

◆ PHP_METHOD() [10/50]

PHP_METHOD ( DatePeriod ,
__unserialize  )

Definition at line 5958 of file php_date.c.

◆ PHP_METHOD() [11/50]

PHP_METHOD ( DatePeriod ,
__wakeup  )

Definition at line 5981 of file php_date.c.

◆ PHP_METHOD() [12/50]

PHP_METHOD ( DatePeriod ,
createFromISO8601String  )

Definition at line 5160 of file php_date.c.

◆ PHP_METHOD() [13/50]

PHP_METHOD ( DatePeriod ,
getDateInterval  )

Definition at line 5312 of file php_date.c.

◆ PHP_METHOD() [14/50]

PHP_METHOD ( DatePeriod ,
getEndDate  )

Definition at line 5285 of file php_date.c.

◆ PHP_METHOD() [15/50]

PHP_METHOD ( DatePeriod ,
getIterator  )

Definition at line 5346 of file php_date.c.

◆ PHP_METHOD() [16/50]

PHP_METHOD ( DatePeriod ,
getRecurrences  )

Definition at line 5330 of file php_date.c.

◆ PHP_METHOD() [17/50]

PHP_METHOD ( DatePeriod ,
getStartDate  )

Definition at line 5261 of file php_date.c.

◆ PHP_METHOD() [18/50]

PHP_METHOD ( DateTime ,
__construct  )

Definition at line 2664 of file php_date.c.

◆ PHP_METHOD() [19/50]

PHP_METHOD ( DateTime ,
__serialize  )

Definition at line 2949 of file php_date.c.

◆ PHP_METHOD() [20/50]

PHP_METHOD ( DateTime ,
__set_state  )

Definition at line 2905 of file php_date.c.

◆ PHP_METHOD() [21/50]

PHP_METHOD ( DateTime ,
__unserialize  )

Definition at line 3014 of file php_date.c.

◆ PHP_METHOD() [22/50]

PHP_METHOD ( DateTime ,
__wakeup  )

Definition at line 3062 of file php_date.c.

◆ PHP_METHOD() [23/50]

PHP_METHOD ( DateTime ,
createFromImmutable  )

Definition at line 2698 of file php_date.c.

◆ PHP_METHOD() [24/50]

PHP_METHOD ( DateTime ,
createFromInterface  )

Definition at line 2719 of file php_date.c.

◆ PHP_METHOD() [25/50]

PHP_METHOD ( DateTime ,
createFromTimestamp  )

Definition at line 2740 of file php_date.c.

◆ PHP_METHOD() [26/50]

PHP_METHOD ( DateTime ,
modify  )

Definition at line 3361 of file php_date.c.

◆ PHP_METHOD() [27/50]

PHP_METHOD ( DateTime ,
setMicrosecond  )

Definition at line 3915 of file php_date.c.

◆ PHP_METHOD() [28/50]

PHP_METHOD ( DateTime ,
sub  )

Definition at line 3505 of file php_date.c.

◆ PHP_METHOD() [29/50]

PHP_METHOD ( DateTimeImmutable ,
__construct  )

Definition at line 2681 of file php_date.c.

◆ PHP_METHOD() [30/50]

PHP_METHOD ( DateTimeImmutable ,
__serialize  )

Definition at line 2969 of file php_date.c.

◆ PHP_METHOD() [31/50]

PHP_METHOD ( DateTimeImmutable ,
__set_state  )

Definition at line 2927 of file php_date.c.

◆ PHP_METHOD() [32/50]

PHP_METHOD ( DateTimeImmutable ,
__unserialize  )

Definition at line 3038 of file php_date.c.

◆ PHP_METHOD() [33/50]

PHP_METHOD ( DateTimeImmutable ,
__wakeup  )

Definition at line 3082 of file php_date.c.

◆ PHP_METHOD() [34/50]

PHP_METHOD ( DateTimeImmutable ,
add  )

Definition at line 3449 of file php_date.c.

◆ PHP_METHOD() [35/50]

PHP_METHOD ( DateTimeImmutable ,
createFromInterface  )

Definition at line 2794 of file php_date.c.

◆ PHP_METHOD() [36/50]

PHP_METHOD ( DateTimeImmutable ,
createFromMutable  )

Definition at line 2773 of file php_date.c.

◆ PHP_METHOD() [37/50]

PHP_METHOD ( DateTimeImmutable ,
createFromTimestamp  )

Definition at line 2815 of file php_date.c.

◆ PHP_METHOD() [38/50]

PHP_METHOD ( DateTimeImmutable ,
modify  )

Definition at line 3386 of file php_date.c.

◆ PHP_METHOD() [39/50]

PHP_METHOD ( DateTimeImmutable ,
setDate  )

Definition at line 3763 of file php_date.c.

◆ PHP_METHOD() [40/50]

PHP_METHOD ( DateTimeImmutable ,
setISODate  )

Definition at line 3815 of file php_date.c.

◆ PHP_METHOD() [41/50]

PHP_METHOD ( DateTimeImmutable ,
setMicrosecond  )

Definition at line 3881 of file php_date.c.

◆ PHP_METHOD() [42/50]

PHP_METHOD ( DateTimeImmutable ,
setTime  )

Definition at line 3713 of file php_date.c.

◆ PHP_METHOD() [43/50]

PHP_METHOD ( DateTimeImmutable ,
setTimestamp  )

Definition at line 3863 of file php_date.c.

◆ PHP_METHOD() [44/50]

PHP_METHOD ( DateTimeImmutable ,
setTimezone  )

Definition at line 3632 of file php_date.c.

◆ PHP_METHOD() [45/50]

PHP_METHOD ( DateTimeImmutable ,
sub  )

Definition at line 3523 of file php_date.c.

◆ PHP_METHOD() [46/50]

PHP_METHOD ( DateTimeZone ,
__construct  )

Definition at line 4083 of file php_date.c.

◆ PHP_METHOD() [47/50]

PHP_METHOD ( DateTimeZone ,
__serialize  )

Definition at line 4171 of file php_date.c.

◆ PHP_METHOD() [48/50]

PHP_METHOD ( DateTimeZone ,
__set_state  )

Definition at line 4129 of file php_date.c.

◆ PHP_METHOD() [49/50]

PHP_METHOD ( DateTimeZone ,
__unserialize  )

Definition at line 4215 of file php_date.c.

◆ PHP_METHOD() [50/50]

PHP_METHOD ( DateTimeZone ,
__wakeup  )

Definition at line 4151 of file php_date.c.

◆ PHP_MINFO_FUNCTION()

PHP_MINFO_FUNCTION ( date )

Definition at line 484 of file php_date.c.

◆ PHP_MINIT_FUNCTION()

PHP_MINIT_FUNCTION ( date )

Definition at line 453 of file php_date.c.

◆ php_mktime()

PHPAPI void php_mktime ( INTERNAL_FUNCTION_PARAMETERS ,
bool gmt )

Definition at line 1141 of file php_date.c.

◆ PHP_MSHUTDOWN_FUNCTION()

PHP_MSHUTDOWN_FUNCTION ( date )

Definition at line 467 of file php_date.c.

◆ php_parse_date()

PHPAPI zend_long php_parse_date ( const char * string,
zend_long * now )

Definition at line 1057 of file php_date.c.

◆ PHP_RINIT_FUNCTION()

PHP_RINIT_FUNCTION ( date )

Definition at line 409 of file php_date.c.

◆ PHP_RSHUTDOWN_FUNCTION()

PHP_RSHUTDOWN_FUNCTION ( date )

Definition at line 423 of file php_date.c.

◆ php_strftime()

PHPAPI void php_strftime ( INTERNAL_FUNCTION_PARAMETERS ,
bool gmt )

Definition at line 1257 of file php_date.c.

◆ php_time()

PHPAPI time_t php_time ( void )

Definition at line 56 of file php_date.c.

◆ RETURN_LONG()

RETURN_LONG ( (zend_long) dateobj->time-> us)

◆ ZEND_MODULE_POST_ZEND_DEACTIVATE_D()

ZEND_MODULE_POST_ZEND_DEACTIVATE_D ( date )

Definition at line 434 of file php_date.c.

◆ ZEND_PARSE_PARAMETERS_NONE()

ZEND_PARSE_PARAMETERS_NONE ( )

Variable Documentation

◆ date_module_entry

zend_module_entry date_module_entry
Initial value:
= {
"date",
ext_functions,
NULL,
}
#define PHP_GINIT
Definition php.h:397
#define PHP_MINFO
Definition php.h:396
#define PHP_RINIT
Definition php.h:394
#define PHP_MSHUTDOWN
Definition php.h:393
#define PHP_RSHUTDOWN
Definition php.h:395
#define PHP_MINIT
Definition php.h:392
#define PHP_MODULE_GLOBALS
Definition php.h:408
#define PHP_DATE_VERSION
Definition php_date.h:41
date(string $format, ?int $timestamp=null)
#define ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module)
Definition zend_API.h:226
#define STANDARD_MODULE_PROPERTIES_EX
#define STANDARD_MODULE_HEADER_EX

Definition at line 370 of file php_date.c.

◆ dateobj

dateobj
Initial value:
{
zval *object

Definition at line 3976 of file php_date.c.

◆ object

object = ZEND_THIS

Definition at line 3980 of file php_date.c.

◆ php_date_global_timezone_db

timelib_tzdb* php_date_global_timezone_db

Definition at line 244 of file php_date.c.

◆ php_date_global_timezone_db_enabled

int php_date_global_timezone_db_enabled

Definition at line 245 of file php_date.c.