summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordi Boggiano <j.boggiano@seld.be>2016-11-13 19:53:29 +0100
committerGitHub <noreply@github.com>2016-11-13 19:53:29 +0100
commitfe94f2f1adef84bcf338568b3bc733d05ba3c3be (patch)
tree8fda8ccdf1913f25174584947c008469ca42b752
parentb21b465cca4647d4ecae64795a8d6be6296fb15c (diff)
parentb064f86b417256ae9b89c4abdb3135505cf76c1a (diff)
downloadmonolog-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.php20
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);
+ }
}