Burada tür bir kayıp değilim. Nasılsa benim kod 2009 sonunda bir hafta eksik sanki ve ben bir kaç farklı şeyler denedim.
Bir hafta için başlangıç ve bitiş tarihini almak için benim baz fonksiyonu altındadır. Yılda Verilen, Hafta ve Haftanın Günü size bir tarih veriyor.
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;
}
Ben 2 Ocak 2010 ile 27 Aralık 2009 arasında hafta eksik olduğunu fark kadar tamamen iyi çalışmak gibiydi.
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>';
Bu yıl 52. hafta 2009-12-26 sona eriyor ve yeni yıl 1 hafta 2010-01-03 başlar gibi görünüyor. Ben, bir hafta yok Bueno kaybediyorum!
Herkes yanlış ne yapıyorum biliyor ya sürecinde herhangi bir gün kaybetmeden bana bu haftanın başlangıç ve bitiş tarihini almak için bir hafta numarası ve bir yıl temin bir aptal geçirmez şekilde beni işaret edebilir?