php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #21572 date gives 0 as a week number of year
Submitted: 2003-01-10 16:14 UTC Modified: 2003-01-10 19:00 UTC
Votes:1
Avg. Score:3.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: trio at surffi dot saunalahti dot fi Assigned:
Status: Not a bug Package: Date/time related
PHP Version: 4.2.2 OS: Redhat 8.0
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: trio at surffi dot saunalahti dot fi
New email:
PHP Version: OS:

 

 [2003-01-10 16:14 UTC] trio at surffi dot saunalahti dot fi
I found out that date("W", $stamp) can gives a zero as output.


<?php
$stamp = time();

while( date("W", $stamp ) != 0 )
        $stamp+=5000;

print date( "d.m.Y H:i W", $stamp ) . " $stamp\n";
?>

Out could be for examble "01.01.2005 00:46 0 1104533193".


I check the ISO-8601 standard (version 2000-12-19
ISO/TC 154 N 362) and it says:

calendar week is represented by two decimal digits. The first calendar week of a year shall be identified as
[01] and subsequent weeks shall be numbered in ascending sequence.

Futhermore the date function should have a option for 'normally' week number of the year like most of people does it understand practically: 1.1.xxxx is 1 and so on and finally 31.12.xxxx is 52.




Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-01-10 16:34 UTC] pollita@php.net
Unable to reproduce with script given, output of date("W") is always >= 1 and <= 53.

(1) Could you try it with 4.3.0 and see if you get the same results?

(2) What timezone are you in?
 [2003-01-10 16:40 UTC] trio at surffi dot saunalahti dot fi
1) I have not that kind of platform to use right know.

2) I am GMT +02:00 timezone.
 [2003-01-10 16:48 UTC] iliaa@php.net
I cannot replicate this either, marking this as feedback until the user can test with 4.3.0 or later.
 [2003-01-10 16:50 UTC] trio at surffi dot saunalahti dot fi
This is a function what php needs for option to date function:

function get_a_week( $timestamp )
{
	//Look the stamp for 1.1.xxxx 00:00:00 for current given stamp
	$seeking_stamp = mktime( 0, 0, 0, 1, 1, date( "Y", $timestamp ) );
	
	//Week numbers are 1-52 in practically
	for( $i=1; $i < 53; $i++ )
	{
		//Check if the passed stamp is between monday 00:00:00 and sunday 23:59:59
		if( $timestamp => $seeking_stamp and $aika <= (($seeking_stamp+=7*24*3600)-1) )
			return $i; //Found a week between 1-52
	}
	
	//Should never get here
	return -1;
}
 [2003-01-10 16:53 UTC] iliaa@php.net
Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions. 

Thank you for your interest in PHP.


 [2003-01-10 19:00 UTC] pollita@php.net
I should also point out that the behavior you describe in your function does NOT replicate the proper behavior of determining the ISO-8601 week number.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu May 16 09:01:32 2024 UTC