#33013 [Csd]: strtotime - 'next month' doesn't work.
| From: | mgf@php.net | Date: | Mon, 16 May 2005 11:45:58 +0000 |
| Subject: | #33013 [Csd]: strtotime - 'next month' doesn't work. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-79044@lists.php.net to get a copy of this message | ||
ID: 33013
Updated by: mgf@php.net
Reported By: nick at netdupe dot com
Status: Closed
Bug Type: Date/time related
Operating System: Mac OS X 10.4
PHP Version: 5.0.4
Assigned To: derick
New Comment:
The change was due to bug report http://bugs.php.net/bug.php?id=18655.
It looks like the GNU spec has changed, since at that time we all
agreed it said "next" was equivalent to 2 -- I even quoted the relevant
section in my contribution to the discussion. It's more intuitive if
"next" is equivalent to 1, so I guess it would be reasonable to change
back, just as long as the various changes are sufficiently documented!
;)
Previous Comments:
------------------------------------------------------------------------
[2005-05-13 03:01:39] rasmus@php.net
I made this change a while back, but I don't recall the reasoning now.
The GNU page on this clearly states that next=1
http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html
Derick, do you remember what the logic for this was?
------------------------------------------------------------------------
[2005-05-13 01:24:42] nick at netdupe dot com
Well I guess this should be a feature change report, because
anyone with some common sense would conclude that "next month"
would mean June, not July. Do you go saying "I am going to be
going on holiday first month"
------------------------------------------------------------------------
[2005-05-12 22:40:01] derick@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
first means +1
next means +2
second means +2
... so either use "first month" or "+1 month". No bug here.
------------------------------------------------------------------------
[2005-05-12 07:53:29] nick at netdupe dot com
Description:
------------
This bug is fairly self explanatory. But for those who need
things to be explained, basically if you enter "next month"
into strtotime you would expect it to give the current time
+ one month, but it gives the current time + 2 months. Tried
on several machines same result, seems to have the same
effect in 5.0.3. I believe there are also problems with
'next week' etc etc.
'./configure' '--prefix=/usr/local/php5' '--with-config-
file-path=/usr/local/php5/lib' '--with-apxs' '--with-iconv'
'--with-openssl=/usr' '--with-zlib=/usr' '--with-mysql=/
Users/marc/svn/entropy/php-module/src/mysql-standard-*' '--
with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-
libxml-dir=/usr/local/php5' '--with-xsl=/usr/local/php5' '--
with-pdflib=/usr/local/php5' '--with-pgsql=/Users/marc/svn/
entropy/php-module/build/postgresql-build' '--with-gd' '--
with-jpeg-dir=/usr/local/php5' '--with-png-dir=/usr/local/
php5' '--with-zlib-dir=/usr' '--with-freetype-dir=/usr/
local/php5' '--with-t1lib=/usr/local/php5' '--with-imap=../
imap-2002d' '--with-imap-ssl=/usr' '--with-gettext=/usr/
local/php5' '--with-ming=/Users/marc/svn/entropy/php-module/
build/ming-build' '--with-ldap' '--with-mime-magic=/usr/
local/php5/etc/magic.mime' '--with-iodbc=/usr' '--with-
xmlrpc' '--with-expat-dir=/usr/local/php5' '--with-iconv-
dir=/usr' '--with-curl=/usr/local/php5' '--enable-exif' '--
enable-wddx' '--enable-soap' '--enable-sqlite-utf8' '--
enable-ftp' '--enable-sockets' '--enable-dbx' '--enable-
dbase' '--enable-mbstring' '--enable-calendar' '--with-bz2=/
usr' '--with-mcrypt=/usr/local/php5' '--with-mhash=/usr/
local/php5' '--with-mssql=/usr/local/php5' '--with-fbsql=/
Users/marc/svn/entropy/php-module/build/frontbase-build/
Library/FrontBase' '--enable-openbase_module'
Reproduce code:
---------------
<?php
echo date('F j, Y, g:i a');
echo date('F j, Y, g:i a', strtotime('next month'));
?>
Expected result:
----------------
May 12, 2005, 5:42 pm
June 12, 2005, 5:42 pm
Obviously the dates will be different when you do this.
Actual result:
--------------
May 12, 2005, 5:42 pm
July 12, 2005, 5:42 pm
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33013&edit=1