From 5c249e223795b30471b0325d7021acfb2c58ad82 Mon Sep 17 00:00:00 2001 From: Holger Segnitz Date: Sat, 29 Jun 2024 00:32:20 +0200 Subject: [PATCH] FIX failing queries on datetime fields set to 1970-01-01 00:00:00 v. int --- src/Propel/Runtime/Util/PropelDateTime.php | 2 +- tests/Propel/Tests/Runtime/Util/PropelDateTimeTest.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Propel/Runtime/Util/PropelDateTime.php b/src/Propel/Runtime/Util/PropelDateTime.php index d3686f836..3052a018b 100644 --- a/src/Propel/Runtime/Util/PropelDateTime.php +++ b/src/Propel/Runtime/Util/PropelDateTime.php @@ -116,7 +116,7 @@ public static function newInstance($value, ?DateTimeZone $timeZone = null, strin if ($value instanceof DateTimeInterface) { return $value; } - if (!$value) { + if ($value === false || $value === null || $value === '') { // '' is seen as NULL for temporal objects // because DateTime('') == DateTime('now') -- which is unexpected return null; diff --git a/tests/Propel/Tests/Runtime/Util/PropelDateTimeTest.php b/tests/Propel/Tests/Runtime/Util/PropelDateTimeTest.php index 28b927278..aba6e0253 100644 --- a/tests/Propel/Tests/Runtime/Util/PropelDateTimeTest.php +++ b/tests/Propel/Tests/Runtime/Util/PropelDateTimeTest.php @@ -208,6 +208,7 @@ public function provideValidNewInstanceValues() 'Y-m-d' => ['2011-08-10', '2011-08-10 00:00:00'], // 1312960848 : Wed, 10 Aug 2011 07:20:48 GMT 'unix_timestamp' => ['1312960848', '2011-08-10 07:20:48'], + 'unix_timestamp_epoch' => ['0', '1970-01-01 00:00:00'], 'Y-m-d H:is' => ['2011-08-10 10:22:15', '2011-08-10 10:22:15'], 'Ymd' => ['20110810', '2011-08-10 00:00:00'], 'Ymd2' => ['20110720', '2011-07-20 00:00:00'], @@ -234,6 +235,7 @@ public function provideValidNewInstanceValuesGmt1() public function testIsTimestamp() { $this->assertEquals(false, TestPropelDateTime::isTimestamp('20110325')); + $this->assertEquals(true, TestPropelDateTime::isTimestamp(0)); $this->assertEquals(true, TestPropelDateTime::isTimestamp(1319580000)); $this->assertEquals(true, TestPropelDateTime::isTimestamp('1319580000')); $this->assertEquals(false, TestPropelDateTime::isTimestamp('2011-07-20 00:00:00'));