Mailinglisten-Archive |
folgende funktion, die ich irgendwo gefunden habe, lief wunderbar, bis zum
jahreswechsel.
er erkennt schon, dass wir uns in der 2.woche des jahres befinden, aber der
timestamp wird nicht korrekt für heute berechnet.
laut mysql ist der timestamp für heute, den 08.01.2007:
1168210800
doch laut funktion: 1167649200
wo ist der fehler?
function get_weekdays($week,$year)
{
$week_dates = array();
// Get timestamp of first week of the year
$first_day = mktime(12,0,0,1,1,$year);
$first_week = date("W",$first_day);
if ($first_week > 1) {
$first_day = strtotime("+1 week",$first_day); // skip to next if year
does not begin with week 1
}
// Get timestamp of the week
$timestamp = strtotime("+$week week",$first_day);
// Adjust to Monday of that week
$what_day = date("w",$timestamp); // I wanted to do "N" but only version
4.3.9 is installed :-(
if ($what_day==0) {
// actually Sunday, last day of the week. FIX;
$timestamp = strtotime("-6 days",$timestamp);
} elseif ($what_day > 1) {
$what_day--;
$timestamp = strtotime("-$what_day days",$timestamp);
}
$week_dates[1] = date("Y-m-d",$timestamp); // Monday
$week_dates[2] = date("Y-m-d",strtotime("+1 day",$timestamp)); // Tuesday
$week_dates[3] = date("Y-m-d",strtotime("+2 day",$timestamp)); // Wednesday
$week_dates[4] = date("Y-m-d",strtotime("+3 day",$timestamp)); // Thursday
$week_dates[5] = date("Y-m-d",strtotime("+4 day",$timestamp)); // Friday
# $week_dates[6] = date("Y-m-d",strtotime("+5 day",$timestamp)); //
Saturday
# $week_dates[7] = date("Y-m-d",strtotime("+6 day",$timestamp)); //
Sunday
return($week_dates);
}
php::bar PHP Wiki - Listenarchive