note 61897 deleted from function.getdate by bjori
| From: | bjori@php.net | Date: | Tue, 04 Apr 2006 14:05:51 +0000 |
| Subject: | note 61897 deleted from function.getdate by bjori | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-107290@lists.php.net to get a copy of this message | ||
Note Submitter: Richard
----
This gives the weeknr (ISO std) of a timestamp, beware: sometimes jan 1-3 have weeknr in previous
year:
function weeknr($timestamp)
{
$info = getdate($timestamp);
$year = $info["year"];
// iso 8601
$date4jan = mktime(0,0,0,1,4,$year);
$jan4 = getdate($date4jan);
$jan4["wday"] = ($jan4["wday"]+6)%7; // monday = day 0
if ($info["mon"] == 1 && $info["mday"] <= 3 -
$jan4["wday"]) {
// days before the monday in week of 4-1 count with prev year
$year--;
$date4jan = mktime(0,0,0,1,4,$year);
$jan4 = getdate($date4jan);
$jan4["wday"] = ($jan4["wday"]+6)%7; // monday = day 0
}
$startwk1 = $date4jan-(24*3600)*$jan4["wday"];
$wk = ($timestamp-$startwk1)/(7*24*3600)+1;
return array("week" => floor($wk), "year" => $year);
}