Gå til innhold

Hente ut dato/mnd ved gitt uke og ukedag


Anbefalte innlegg

Hei!

 

Jeg har et script hvor jeg looper en for-loop fra 1 til 52 og skal representere ukene i året. Hver uke har en tirsdag og en torsdag. Åssen kan jeg finne ut hvilke dato og mnd disse dagene vil ha? Veldig dårlig på date og time-funksjoner, så her trenger jeg virkelig en dytt i riktig retning.

 

All hjelp mottas med et stor takk :)

 

- Thomas

Lenke til kommentar
Videoannonse
Annonse

Først må jeg bare fortelle at jeg hater den gregorianske kalenderen. Jeg har herjet så mye med datoer i både PHP, SQL og JavaScript at dersom jeg hadde møtt de som fant på systemet hadde jeg slått de i fjeset.

 

Men nok om det.

 

Det første du må bestemme deg for er hvilket ukessystem du skal bruke. Et system er definert i ISO-8601 som om jeg husker rett sier at første torsdag i året befinner seg i uke 01 som betyr at for noen år går ukestallet til 53. Dette standardiserte ukessystemet er ikke det samme som det som f.eks blir brukt i den norske skolen, hvis definisjoner jeg har ingen aning hva er.

Lenke til kommentar

Modifiserte et kalender script kjappt.. Mye dårlig koding, menmen..

 

 

 

<?php

$date = time();
$day = date('d', $date);
$year = date('Y', $date);

$week = 1;

for($month = 1; $month <= 12; $month++) {

$first_day = mktime(0,0,0,$month, 1, $year);
$day_of_week = date('D', $first_day);

switch($day_of_week){
case "Sun": $blank = 0; break;
case "Mon": $blank = 1; break;
case "Tue": $blank = 2; break;
case "Wed": $blank = 3; break;
case "Thu": $blank = 4; break;
case "Fri": $blank = 5; break;
case "Sat": $blank = 6; break;
}

$days_in_month = cal_days_in_month(0, $month, $year); 
$day_count = 1;

while ( $blank > 0 )
{
$blank = $blank-1;
$day_count++;
} 
$day_num = 1;
while ( $day_num <= $days_in_month )
{
if($day_count == "3" OR $day_count == "5") {
if($day_count == "3") { $dagn = "Tirsdag"; }
else { $dagn = "Torsdag"; }
if(strlen($month) == 1) { $mnd = "0$month"; } else { $mnd = $month; }
if(strlen($day_num) == 1) { $dag = "0$day_num"; } else { $dag = $day_num; }
$datoer .= "<tr><td>$week</td><td>$dag.$mnd.$year</td><td>$dagn</td></tr>";
}
$day_num++;
$day_count++;

if ($day_count > 7)
{
$day_count = 1;
$week++; 
}
}
}


echo "<table>";
echo "<tr><td><b>Uke</b><td><b>Dato</b></td><td><b>Dag</b></td></tr>";

echo $datoer;

echo "</table>";

?>

 

Endret av Goggen90
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...