Re: Sniping on the List
| From: | Tedd Sperling | Date: | Sat, 19 Nov 2011 17:24:41 +0000 |
| Subject: | Re: Sniping on the List | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-315766@lists.php.net to get a copy of this message | ||
On Nov 19, 2011, at 11:59 AM, Stuart Dallas wrote:
> On 19 Nov 2011, at 16:48, Tedd Sperling wrote:
>>>>>> For example, if you push '-1' though strtotime(-1), you'll
>>>>>> get Wednesday only one day a week -- whereas 'null' works every time.
>>>>> Technically I see that as a bug. I believe strtotime(null) should return null,
>>>>> but due to the way type inference works, null is interpreted as 0. The point here being that
>>>>> you're not getting the time at null, you're getting the time at 0.
>>>>
>>>> Nope, zero time is absolutely January 1, 1970 00:00:00 -- which was a Thursday. If
>>>> you pass zero through strtotime(), it reports "December 1969" and I claim that to be a
>>>> bug. Realize that seconds, minutes, and hours go from 0-59, not 1 to 60. Any fractions of a second
>>>> before zero was 59.999... and such was indeed part of the day/month/year before.
>>>
>>> That has nothing to do with seconds running from 0 to 59 rather than 1 to 60, it has to
>>> do with your timezone. When you ask PHP to display a formatted date with a timestamp of 0
>>> you're actually getting the time at (unix timestamp 0 + (3600 * your timezone offset in
>>> hours)). Since you're in a timezone that's behind UTC you get the previous day.
>>
>>> -snip- with other time zone discussion that have nothing to do with what I observed nor
>>> addressed in my post.
>>
>> My observations are demonstrated here:
>>
>> http://www.webbytedd.com/cccc/strtotime/index.php
>
> Your test code is flawed because strtotime returns an error when you pass it null. Your code is
> passing that false to getdate, which is interpreting it as an integer, which would be 0.
>
> -Stuart
Interesting -- I shall look into it.
Thanks,
tedd
_____________________
tedd@sperling.com
http://sperling.com