Adapted from From ec7463a77b643f533b19079147a952a0d2dd21e3 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Wed, 16 Aug 2017 10:31:18 +0100 Subject: [PATCH 1/2] PHPC-997: Handle changes in field names in timelib 2017.05beta7 --- src/BSON/UTCDateTime.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/BSON/UTCDateTime.c b/src/BSON/UTCDateTime.c index 7f08285f..11055565 100644 --- a/src/BSON/UTCDateTime.c +++ b/src/BSON/UTCDateTime.c @@ -128,7 +128,11 @@ static bool php_phongo_utcdatetime_init_ /* The following assignments use the same logic as date_format() in php_date.c */ sec = datetime_obj->time->sse; +#if PHP_VERSION_ID >= 70200 + usec = (int64_t) floor(datetime_obj->time->us); +#else usec = (int64_t) floor(datetime_obj->time->f * 1000000 + 0.5); +#endif intern->milliseconds = (sec * 1000) + (usec / 1000); intern->initialized = true; @@ -256,7 +260,11 @@ static PHP_METHOD(UTCDateTime, toDateTim php_date_initialize(datetime_obj, sec, sec_len, NULL, NULL, 0 TSRMLS_CC); efree(sec); +#if PHP_VERSION_ID >= 70200 + datetime_obj->time->us = (intern->milliseconds % 1000) * 1000; +#else datetime_obj->time->f = (double) (intern->milliseconds % 1000) / 1000; +#endif } /* }}} */ /* {{{ proto array MongoDB\BSON\UTCDateTime::jsonSerialize()