21#include <unicode/ustring.h>
22#include <unicode/ucal.h>
33 UChar* formatted =
NULL;
34 int32_t resultlengthneeded =0 ;
40 formatted=(UChar*)
emalloc(
sizeof(UChar) * resultlengthneeded);
63 if (U_FAILURE(
err->code)) {
67 if ((ele_value = zend_hash_str_find_deref(hash_arr, key_name,
strlen(key_name))) !=
NULL) {
69 spprintf(&message, 0,
"datefmt_format: parameter array contains "
70 "a non-integer element for key '%s'", key_name);
74 if (
Z_LVAL_P(ele_value) > INT32_MAX ||
77 "bounds for a 32-bit integer in key '%s'",
105#define INTL_GET_ELEM(elem) \
106 internal_get_arr_ele(dfo, hash_arr, (elem), err)
125 "error cloning calendar", 0);
153 "to parse input params", 0 );
161 if (!hash_arr || zend_hash_num_elements(hash_arr) == 0) {
165 timestamp = internal_get_timestamp(dfo, hash_arr);
const U_BUFFER_OVERFLOW_ERROR
const U_ILLEGAL_ARGUMENT_ERROR
U_CDECL_BEGIN U_CDECL_END U_CFUNC double intl_zval_to_millis(zval *z, intl_error *err, const char *func)
#define INTL_DATA_ERROR_P(obj)
#define INTL_DATA_ERROR_CODE(obj)
#define INTL_METHOD_CHECK_STATUS(obj, msg)
#define INTL_METHOD_RETVAL_UTF8(obj, ustring, ulen, free_it)
void intl_errors_set(intl_error *err, UErrorCode code, const char *msg, int copyMsg)
void intl_error_set(intl_error *err, UErrorCode code, const char *msg, int copyMsg)
struct _intl_error intl_error
datefmt_format(IntlDateFormatter $formatter, $datetime)
ZEND_API zend_result zend_parse_method_parameters(uint32_t num_args, zval *this_ptr, const char *type_spec,...)
#define Z_ARRVAL_P(zval_p)
struct _zend_array HashTable