Edit report at https://bugs.php.net/bug.php?id=33957&edit=1

 ID:                 33957
 Comment by:         tchorbadjiiski at gmail dot com
 Reported by:        paul at stunning-stuff dot com
 Summary:            gmdate('W')/date('W') sometimes returns wrong week
                     number.
 Status:             Closed
 Type:               Bug
 Package:            Date/time related
 Operating System:   *
 PHP Version:        5CVS-2005-08-02
 Assigned To:        derick
 Block user comment: N
 Private report:     N

 New Comment:

Hello,

it seems that this bug is still alive:-). My tries to calculate the week for 
timestamps belonging to 31 December 2012 are returning the wrong result as can 
be seen here:

date('Y/W', 1356908400)         => 2012/01
date('Y/m/d H:i:s', 1356908400) => 2012/12/31 00:00:00

Calls with timestamps belonging to 30/12/12 or 01/01/13 result in the correct 
output. 

Expected behavior (for me reading the ISO 8601 doc) would be to have the year 
2013 in the first call to the date function.

I'm using debian wheezy (testing) with the following php version:
PHP 5.4.4-13 (cli) (built: Feb 19 2013 10:54:11)

Thanks and cheers,
Angel Tchorbadjiiski


Previous Comments:
------------------------------------------------------------------------
[2010-06-14 09:03:34] paul at stunning-stuff dot com

23 is the correct week number according to timeanddate.com. Remember the week 
number is determined using ISO8601 rules!!

Btw, a snapshot release is an 'overnight' release of the latest version of a 
software package. Google will tell you more.

-Paul

------------------------------------------------------------------------
[2010-06-13 13:07:20] cgullz at gmail dot com

Hi,

I have the same problem using date('W') to show week number of 13/June/2010 
which should be 25, but it displays 23.

I use php 5.2.6 through WAMP2.

This is the first time I hear about snapshot so not sure what am I suppose to 
do to fix this problem.

Can someone please explain to me what should I do?

Thank you,

Sigal

------------------------------------------------------------------------
[2010-05-19 20:56:04] paul at stunning-stuff dot com

Hi Warwick,

The 1st week of a year does not necessarily start on the first of January 
under the rules of ISO8601. I checked your examples and they seemed fine. 
Please read up on ISO8601.

-Paul

------------------------------------------------------------------------
[2010-05-19 04:06:11] wps at wwe dot com

date('W', $timestamp) fails to return "01" for some January 1st years on PHP 
version 5.3.2 and 5.2.8 on CentOS and Windows.


$year = 1970;
$month = 1;
$day = 1;

while ($year <= 2028) {
  $timestamp = mktime(12, 0, 0, $month, $day, $year);
  print $year . " :: " . date('W', $timestamp). " :: " . date('D', $timestamp) 
. "\n</br>";
  $year++;
}

Expect 01 for every year
but instead get
1970 :: 01 :: Thu
1971 :: 53 :: Fri
1972 :: 52 :: Sat
1973 :: 01 :: Mon
1974 :: 01 :: Tue
1975 :: 01 :: Wed
1976 :: 01 :: Thu
1977 :: 53 :: Sat
1978 :: 52 :: Sun
...
2020 :: 01 :: Wed
2021 :: 53 :: Fri
2022 :: 52 :: Sat
2023 :: 52 :: Sun
2024 :: 01 :: Mon
2025 :: 01 :: Wed
2026 :: 01 :: Thu
2027 :: 53 :: Fri
2028 :: 52 :: Sat

1st falling on Friday returns 53 
1st falling on Saturday/Sunday return 52


Checked dates using
http://www.tuxgraphics.org/toolbox/cal_year.html


Warwick Shaw

------------------------------------------------------------------------
[2005-08-31 16:31:52] der...@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.



------------------------------------------------------------------------


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

    https://bugs.php.net/bug.php?id=33957


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=33957&edit=1

Reply via email to