diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2016-11-13 19:53:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-13 19:53:29 +0100 |
commit | fe94f2f1adef84bcf338568b3bc733d05ba3c3be (patch) | |
tree | 8fda8ccdf1913f25174584947c008469ca42b752 | |
parent | b21b465cca4647d4ecae64795a8d6be6296fb15c (diff) | |
parent | b064f86b417256ae9b89c4abdb3135505cf76c1a (diff) | |
download | monolog-fe94f2f1adef84bcf338568b3bc733d05ba3c3be.zip monolog-fe94f2f1adef84bcf338568b3bc733d05ba3c3be.tar.gz monolog-fe94f2f1adef84bcf338568b3bc733d05ba3c3be.tar.bz2 |
Merge pull request #884 from nikolaposa/fix/mongodb-formatter-date
Fixing date/time formatting in MongoDBFormatter
-rw-r--r-- | src/Monolog/Formatter/MongoDBFormatter.php | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Monolog/Formatter/MongoDBFormatter.php b/src/Monolog/Formatter/MongoDBFormatter.php index 78c2976..faf37f9 100644 --- a/src/Monolog/Formatter/MongoDBFormatter.php +++ b/src/Monolog/Formatter/MongoDBFormatter.php @@ -105,6 +105,26 @@ class MongoDBFormatter implements FormatterInterface protected function formatDate(\DateTimeInterface $value, int $nestingLevel): UTCDateTime { + if (version_compare(phpversion('mongodb'), '1.1.9', '<=')) { + return $this->legacyGetMongoDbDateTime($value); + } + + return $this->getMongoDbDateTime($value); + } + + final protected function getMongoDbDateTime(\DateTimeInterface $value): UTCDateTime + { return new UTCDateTime((string) floor($value->format('U.u') * 1000)); } + + final protected function legacyGetMongoDbDateTime(\DateTimeInterface $value): UTCDateTime + { + $milliseconds = floor($value->format('U.u') * 1000); + + $milliseconds = (PHP_INT_SIZE == 8) //64-bit OS? + ? (int) $milliseconds + : (string) $milliseconds; + + return new UTCDateTime($milliseconds); + } } |