Hi!

This 64-bit machine is running 5.2.5 and returns false on the all-zero
datetime string.  It was upgraded last week to 5.2.6 and started
returning the large negative integer.

Ah, yes, the change responsible is the following:

<http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/timelib.h?r1=1.10.2.11.2.4&r2=1.10.2.11.2.5&pathrev=PHP_5_2>

It fixes bug #44209 <http://bugs.php.net/bug.php?id=44209>. timelib.h
didn't include limits.h and thus always defined LONG_MAX / LONG_MIN to
the 32bit values for longs and thus the check in timelib.c for LONG_MIN
failed in 5.2.5 for your timestamp. But as 5.2.6 fixed that (LONG_MIN
from limits.h used when present), your timestamp became valid and
strtotime() returned it.

Or to put it that way: The current behaviour of PHP 5.2.6 is the
expected behaviour (at least what reading the source tells about the
author's intentions) and it was broken before.

As to whether it's a good idea that strtotime() accepts invalid dates,
I'll stay out of that discussion.

Regards,
Christian

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to