我在這裏感到茫然。看起來好像我的代碼在2009年底整整一週都失蹤了,而且我嘗試過一些不同的事情。php日期/星期問題
我的基本函數獲取一週的開始和結束日期如下。鑑於每年,每週和每週的日期,它會給你一個日期。
function datefromweeknr($aYear, $aWeek, $aDay)
{
$Days=array('xx','ma','di','wo','do','vr','za','zo');
//xx = Current Sun, ma = Mon ..... zo = Sun of the next Week
$DayOfWeek=array_search($aDay,$Days); //get day of week (1=Monday)
$DayOfWeekRef = date("w", mktime (0,0,0,1,4,$aYear)); //get day of week of January 4 (always week 1)
if ($DayOfWeekRef==0){
$DayOfWeekRef=7;
}
$ResultDate=mktime(0,0,0,1,4,$aYear)+((($aWeek-1)*7+($DayOfWeek-$DayOfWeekRef))*86400);
return $ResultDate;
}
似乎工作完全罰款,直到我意識到,我是2009年12月27日當週失蹤1月2日2010年
echo '<table border="1">';
for($i = 1; $i < 53; $i++){
if($i < 10){
$w = '0'.$i.'1';
}
else{
$w = $i.'1';
}
echo '<tr><td>Week#'.$i.' </td><td> '.date("Y-m-d",datefromweeknr(2009,$i,"xx")).' </td><td> '.date("Y-m-d",datefromweeknr(2009, $i,"za")).'</td><td> Week = '.date("W: Y-m-d",strtotime("2009W$w")).' </td></tr>';
}
echo '</table>';
看來今年的第52周在2009-12結束-26和新年的第一週從2010-01-03開始。我失去了整整一週,沒有布埃諾!
任何人都知道我做錯了什麼,或者可以指向一種提供一週數字和一年的傻瓜證明方式,讓我獲得該周的開始和結束日期,而不會在這個過程中失去任何日子?
我使用ISO 8601的計時應用。問題是今年有53周。現在如何弄清楚哪些年份有「閏周」!謝謝吉米 – mmundiff 2010-01-05 05:01:29