Erster Tag einer Woche

kastalonien

Mitglied
Hallo,

wie kann ich den ersten (und letzten) Tag einer Woche auslesen, wenn ich die Woche und das Jahr als numerische Werte habe...hab' gedacht, das geht vielleicht mit mktime, aber fehlanzeige...währe sehr dankbar für nen Ansatz...

Kastalonien
 
PHP:
function getDaysInWeek ($weekNumber, $year) {
  // Count from '0104' because January 4th is always in week 1
  // (according to ISO 8601).
  $time = strtotime($year . '0104 +' . ($weekNumber - 1)
                    . ' weeks');
  // Get the time of the first day of the week
  $mondayTime = strtotime('-' . (date('w', $time) - 1) . ' days',
                          $time);
  // Get the times of days 0 -> 6
  $dayTimes = array ();
  for ($i = 0; $i < 7; ++$i) {
    $dayTimes[] = strtotime('+' . $i . ' days', $mondayTime);
  }
  // Return timestamps for mon-sun.
  return $dayTimes;
}
aus: ISO 8601 week number to date (timestamp) in PHP

Er gibt dir einen Array mit 7 Einträgen zurück, für jeden Tag einen. Davon brauchst du eben nur den ersten und letzten.
 
Irgendwie hat die Funktion bei mir nicht funktioniert, habe jetzt aber diese genommen:


Code:
function getFirstDayOfWeek($year, $weeknr)
{
$offset = date(’w', mktime(0,0,0,1,1,$year));
$offset = ($offset < 5) ? 1-$offset : 8-$offset;
$monday = mktime(0,0,0,1,1+$offset,$year);

return strtotime(’+’ . ($weeknr - 1) . ‘ weeks’, $monday);
}

die funktioniert super, steht im link bei den Antworten...

Vielen Dank für deine Hilfe

Kastalonien
 
Habe diese Lösung gebastelt, für letzte und vorletzte Woche

$y = date('Y');
$m = date('m');
$d = date('d');


$kalenderwoche_1 = date("Y",$timestamp-(86400*7)).'-KW'.date("W",$timestamp-(86400*7));
$tag = date("D", mktime(0,0,0,$m,$d,$y));

if ($tag == "Sun"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-13,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-20,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-7,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-14,$y)); }

if ($tag == "Sat"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-12,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-19,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-6,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-13,$y)); }

if ($tag == "Fri"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-11,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-18,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-5,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-12,$y)); }

if ($tag == "Thu"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-10,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-17,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-4,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-11,$y)); }

if ($tag == "Wed"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-9,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-16,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-3,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-10,$y)); }

if ($tag == "Tue"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-8,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-15,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-2,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-9,$y)); }

if ($tag == "Mon"){ $wochenerster_1 = date("Y-m-d",mktime(0,0,0,$m,$d-7,$y)); $wochenerster_2 = date("Y-m-d",mktime(0,0,0,$m,$d-14,$y));
$wochenletzter_1 = date("Y-m-d",mktime(0,0,0,$m,$d-1,$y)); $wochenletzter_2 = date("Y-m-d",mktime(0,0,0,$m,$d-8,$y)); }
 
Zurück