This is an automated email from the ASF dual-hosted git repository. isapego pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite-php-thin-client.git
commit 3dbff1d8969eb39b90f44a18e17b089961b63a5f Author: Pavel Petroshenko <[email protected]> AuthorDate: Tue Oct 23 13:35:37 2018 +0300 IGNITE-9951 PHP: Fixes for Date data type This closes #5043 --- src/Apache/Ignite/Data/Date.php | 9 ++++----- src/Apache/Ignite/Data/Timestamp.php | 4 +++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Apache/Ignite/Data/Date.php b/src/Apache/Ignite/Data/Date.php index 356cc36..fa5f394 100644 --- a/src/Apache/Ignite/Data/Date.php +++ b/src/Apache/Ignite/Data/Date.php @@ -47,7 +47,8 @@ class Date */ public static function fromDateTime(DateTime $dateTime) { - return new Date($dateTime->getTimestamp() * 1000); + $millis = intval($dateTime->format('u') / 1000); + return new Date($dateTime->getTimestamp() * 1000 + $millis); } /** @@ -57,11 +58,9 @@ class Date */ public function toDateTime(): DateTime { - $dateTime = new DateTime(); - $dateTime->setTimestamp($this->getSeconds()); - return $dateTime; + return DateTime::createFromFormat('U.u', number_format($this->getMillis() / 1000, 6, '.', '')); } - + /** * Returns the date value as number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC. * diff --git a/src/Apache/Ignite/Data/Timestamp.php b/src/Apache/Ignite/Data/Timestamp.php index 39ef984..a404d46 100644 --- a/src/Apache/Ignite/Data/Timestamp.php +++ b/src/Apache/Ignite/Data/Timestamp.php @@ -49,7 +49,9 @@ class Timestamp extends Date */ public static function fromDateTime(DateTime $dateTime) { - return new Timestamp($dateTime->getTimestamp() * 1000, 0); + $micros = $dateTime->format('u'); + $millis = intval($micros / 1000); + return new Timestamp($dateTime->getTimestamp() * 1000 + $millis, ($micros % 1000) * 1000); } /**
