Propel2 icon indicating copy to clipboard operation
Propel2 copied to clipboard

not nullable date and time fields cannot be set on exactly 1970-01-01 00:00:00 via (int)0 as that loosely evaluates to false in Propel\Runtime\Util\PropelDateTime

Open hsegnitz opened this issue 7 months ago • 0 comments

The offending code:

    public static function newInstance($value, ?DateTimeZone $timeZone = null, string $dateTimeClass = 'DateTime')
    {
        if ($value instanceof DateTimeInterface) {
            return $value;
        }
        **if (!$value) {**
            // '' is seen as NULL for temporal objects
            // because DateTime('') == DateTime('now') -- which is unexpected
            return null;
        }

It should be rather

if ($value === false || $value === null || $value === '') {
    ....
}

PR incoming when I figure out running the tests locally ;)

hsegnitz avatar Jun 28 '24 22:06 hsegnitz