mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
Fixed #74298 - IntlDateFormatter->format() doesn't return microseconds/fractions
This commit is contained in:
parent
a813cebff0
commit
1ce355abb6
2
NEWS
2
NEWS
@ -18,6 +18,8 @@ PHP NEWS
|
||||
|
||||
- Intl:
|
||||
. Fixed bug #65683 (Intl does not support DateTimeImmutable). (Ben Scholzen)
|
||||
. Fixed bug #74298 (IntlDateFormatter->format() doesn't return
|
||||
microseconds/fractions). (Andrew Nester)
|
||||
|
||||
- OpenSSL:
|
||||
. Fixed bug #74341 (openssl_x509_parse fails to parse ASN.1 UTCTime without
|
||||
|
@ -125,6 +125,8 @@ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
|
||||
}
|
||||
|
||||
if (millis) {
|
||||
php_date_obj *datetime;
|
||||
|
||||
ZVAL_STRING(&zfuncname, "getTimestamp");
|
||||
if (call_user_function(NULL, z, &zfuncname, &retval, 0, NULL)
|
||||
!= SUCCESS || Z_TYPE(retval) != IS_LONG) {
|
||||
@ -137,7 +139,8 @@ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
*millis = U_MILLIS_PER_SECOND * (double)Z_LVAL(retval);
|
||||
datetime = Z_PHPDATE_P(z);
|
||||
*millis = U_MILLIS_PER_SECOND * ((double)Z_LVAL(retval) + datetime->time->f);
|
||||
zval_ptr_dtor(&zfuncname);
|
||||
}
|
||||
|
||||
|
30
ext/intl/tests/bug74298.phpt
Normal file
30
ext/intl/tests/bug74298.phpt
Normal file
@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #74298 (IntlDateFormatter->format() doesn't return microseconds/fractions)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded('intl')) print 'skip'; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump((new \DateTime('2017-01-01 01:02:03.123456'))->format('Y-m-d\TH:i:s.u'));
|
||||
|
||||
var_dump((new \IntlDateFormatter(
|
||||
'en-US',
|
||||
\IntlDateFormatter::FULL,
|
||||
\IntlDateFormatter::FULL,
|
||||
'UTC',
|
||||
\IntlDateFormatter::GREGORIAN,
|
||||
'yyyy-MM-dd HH:mm:ss.SSSSSS'
|
||||
))->format(new \DateTime('2017-01-01 01:02:03.123456')));
|
||||
|
||||
var_dump(datefmt_create(
|
||||
'en-US',
|
||||
\IntlDateFormatter::FULL,
|
||||
\IntlDateFormatter::FULL,
|
||||
'UTC',
|
||||
\IntlDateFormatter::GREGORIAN,
|
||||
'yyyy-MM-dd HH:mm:ss.SSSSSS'
|
||||
)->format(new \DateTime('2017-01-01 01:02:03.123456')));
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(26) "2017-01-01T01:02:03.123456"
|
||||
string(26) "2017-01-01 01:02:03.123000"
|
||||
string(26) "2017-01-01 01:02:03.123000"
|
Loading…
Reference in New Issue
Block a user