#18670 [Com]: strtotime() bug

From: Date: Tue, 11 Feb 2003 20:12:38 +0000
Subject: #18670 [Com]: strtotime() bug
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-32799@lists.php.net to get a copy of this message
ID: 18670 Comment by: mphillips@lufkin.org Reported By: nic@bbmcarlson.com Status: Assigned Bug Type: Date/time related Operating System: RedHat Linux Linux linux1 2.2.16 PHP Version: 4.2.2 Assigned To: rasmus New Comment: I have noticed that when you do something like $sdate = date9'Y-m-d', strtotime('02-09-2003')); $sdate is getting '2008-02-24'. Is this a common occurance Previous Comments: ------------------------------------------------------------------------ [2002-10-31 12:07:20] matt@codewalkers.com I also can confirm that strtotime acts funny when the same day does not exist in the next month: <? $timestamp = strtotime("31 October 2002"); $next_month = strftime("%B" ,strtotime("+1 month", $timestamp)); echo $next_month; ?> displays: December ------------------------------------------------------------------------ [2002-09-24 17:07:42] spud@nothingness.org In PHP 4.2.3, the difference between "2" and "next" are still screwy in strtotime(). I'm trying to parse icalendar recurrence formats, so I need to calculate things like the "second Monday" in a month. Sample code below illustrates the difference between "2" and "next" (which should be identical). <? $start = strtotime('September 1, 2002'); echo ('Start timestamp: '.$start.'<br>'); echo ('Start date: Sunday, Sep 1 2002<br>'); $first = strtotime('first Monday',$start); echo ('"First" Monday: '.date('l, M d Y',$first).'<br>'); $oneth = strtotime('1 Monday',$start); echo ('"1" Monday: '.date('l, M d Y',$oneth).'<br>'); $next = strtotime('next Monday',$start); echo ('"Next" Monday: '.date('l, M d Y',$next).'<br>'); $twoth = strtotime('2 Monday',$start); echo ('"2" Monday: '.date('l, M d Y',$twoth).'<br>'); $third = strtotime('third Monday',$start); echo ('"Third" Monday: '.date('l, M d Y',$third).'<br>'); $threeth = strtotime('3 Monday',$start); echo ('"3" Monday: '.date('l, M d Y',$threeth).'<br>'); ?> ------------------------------------------------------------------------ [2002-07-31 18:07:05] kalowsky@php.net Assigning to rasmus as it sounds like he already knows whats wrong. ------------------------------------------------------------------------ [2002-07-31 10:51:09] kalowsky@php.net so can we assign this bug to you Rasmus? ------------------------------------------------------------------------ [2002-07-31 10:44:11] rasmus@php.net Sebastian, yes, that is because I changed how "next" works based on bug report #18655 It works correctly for days now, but it does seem like month-handling is messed up now. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/18670 -- Edit this bug report at http://bugs.php.net/?id=18670&edit=1

« previous php.bugs (#32799) next »