Re: [PHP] Strtotime returns 02/09/2008 for "next Saturday"....
- From: tomchubb@xxxxxxxxx ("Tom Chubb")
- Date: Thu, 31 Jan 2008 16:55:03 +0000
On 31/01/2008, Mike Morton <mike@xxxxxxxxxxxx> wrote:
Ya - the other server is 4.4.7
However - this does not seem to be the problem necessarily:
print date("m/d/Y",strtotime("next saturday"));
02/09/2008
print date("m/d/Y",strtotime("next sunday"));
02/10/2008
print date("m/d/Y",strtotime("next monday"));
02/11/2008
print date("m/d/Y",strtotime("next tuesday"));
02/12/2008
print date("m/d/Y",strtotime("next wednesday"));
02/13/2008
print date("m/d/Y",strtotime("next thursday"));
02/07/2008
So from today to next Thursday, the dates are all 1 week off....?
On 1/31/08 11:03 AM, "Tom Chubb" <tomchubb@xxxxxxxxx> wrote:
On 31/01/2008, Mike Morton <mike@xxxxxxxxxxxx> wrote:it
I have been using:
$nextSaturday= date("m/d/Y",strtotime("next saturday"));
For months long time now with out problems, but in the last two days,
codewent kind of funky. It is now returning:
02/09/2008 instead of the expected 02/02/2008. I have tried the same
12:00on another server and different version of PHP,and it works ok.
More info:
Shell date: Thu Jan 31 09:44:50 EST 2008
echo date("Y-m-d g:i A T", time()); = 2008-01-31 10:00 AM EST
echo date("Y-m-d g:i A T", strtotime("next saturday")); = 2008-02-09
AAM ESTThe manual says:
version: 4.3.9 (highest version we can have at the moment)
I could not find this in the known bugs from this version....
So - is this something that is server or version specific?
TIA!
--
Cheers
Mike Morton
****************************************************
*
* Tel: 905-465-1263
* Email: mike@xxxxxxxxxxxx
*
****************************************************
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
*Warning*
In PHP versions prior to 4.4.0, *"next"* is incorrectly computed as +2.
typical solution to this is to use *"+1"*.
Dunno if that helps you out? Is the other server > 4.4.0?
http://uk3.php.net/strtotime
--
Cheers
Mike Morton
****************************************************
*
* Tel: 905-465-1263
* Email: mike@xxxxxxxxxxxx
*
****************************************************
An example that may help:
when using strtotime("wednesday"), you will get different results whether
you ask before or after wednesday, since strtotime always looks ahead to the
*next* weekday.
strtotime() does not seem to support forms like "this wednesday", "wednesday
this week", etc.
the following function addresses this by always returns the same specific
weekday (1st argument) within the *same* week as a particular date (2nd
argument).
function weekday($day="", $now="") {
$now = $now ? $now : "now";
$day = $day ? $day : "now";
$rel = date("N", strtotime($day)) - date("N");
$time = strtotime("$rel days", strtotime($now));
return date("Y-m-d", $time);
}
example use:
weekday("wednesday"); // returns wednesday of this week
weekday("monday, "-1 week"); // return monday the in previous week
ps! the ? : statements are included because strtotime("") without gives 1
january 1970 rather than the current time which in my opinion would be more
intuitive...
- References:
- Re: [PHP] Strtotime returns 02/09/2008 for "next Saturday"....
- From: Mike Morton
- Re: [PHP] Strtotime returns 02/09/2008 for "next Saturday"....
- Prev by Date: Re: [PHP] PEAR website and MSIE 6
- Next by Date: Re: [PHP] PEAR website and MSIE 6
- Previous by thread: Re: [PHP] Strtotime returns 02/09/2008 for "next Saturday"....
- Next by thread: Re: [PHP] Strtotime returns 02/09/2008 for "next Saturday"....
- Index(es):
Relevant Pages
|