Ellingsen Skrevet 17. februar 2007 Del Skrevet 17. februar 2007 Hei. Holder på og setter opp en side, og jeg må sette opp noen ukelister. Problemet er at med date(W) så får jeg ut uke nummer, men hvordan kan jeg finne ut hvilken dato som er mandag og hvem som er søndag i den uken? Jeg må også hente ut datoen på forskjellige ukedag i uker som allerede har vært, f.eks onsdag i uke 3 er dato ?. Noen som har noen forslag? Takk for all hjelp. Lenke til kommentar
Runar0 Skrevet 18. februar 2007 Del Skrevet 18. februar 2007 Vist du henter ut hvilken dag i uken dagen i dag er og så trekker du fra det tallet fra dagens dato så har du mandagens dato. Så plusser du på sju og du har søndag. Så er det bare og bygge på. Lenke til kommentar
Ellingsen Skrevet 18. februar 2007 Forfatter Del Skrevet 18. februar 2007 (endret) Vist du henter ut hvilken dag i uken dagen i dag er og så trekker du fra det tallet fra dagens dato så har du mandagens dato. Så plusser du på sju og du har søndag. Så er det bare og bygge på. 7968876[/snapback] Ja, har tenkt på det.. og det fungerer for den uken vi er i nå... men det er værre med de ukene som allerede har vært... edit: tror jeg må bruke mktime(), men ikke så dreven på det. Ellerså må jeg bygge opp en ekstremt avansert og tung date() funktion som regner seg bakover ved og trekke fra dager... skal tenke litt på det.. sjekke opp litt om mktime() på www.php.net... poster om jeg finner ut av det. Takk for hjelp så langt. Endret 18. februar 2007 av Ellingsen Lenke til kommentar
Ellingsen Skrevet 18. februar 2007 Forfatter Del Skrevet 18. februar 2007 $week = date(W); $day = date(d); $day2 = date(w); $month = date(m); $year = date(Y); if($day2==0) { $dato_fra = $day-6; $dato_til = $day; } elseif($day2==1) { $dato_fra = $day; $dato_til = $day+6; } elseif($day2==2) { $dato_fra = $day-1; $dato_til = $day+5; } elseif($day2==3) { $dato_fra = $day-2; $dato_til = $day+4; } elseif($day2==4) { $dato_fra = $day-3; $dato_til = $day+3; } elseif($day2==5) { $dato_fra = $day-4; $dato_til = $day+2; } elseif($day2==6) { $dato_fra = $day-5; $dato_til = $day+1; } echo "Uke nå: $week </br>Start dato: $dato_fra.$month.$year</br>Slutt dato: $dato_til.$month.$year"; Satte opp denne nå, men problemet med den vil vel være at f.eks ved starten av en månde, f.eks Tirsdag 1 Mars, så vil $dato_fra returnere negativt? Lenke til kommentar
Mads-b Skrevet 18. februar 2007 Del Skrevet 18. februar 2007 (endret) Nå er jeg litt treg, og forstår ikke helt hva du vil, men altså: date('W'); henter kun ut hvilket uketall det er nå. Jeg foreslår å bruke timestamps som basis. date('W', time()); vil hente ut uken som er nå. Forrige uke er: 3600*24*7 sekunder siden, så date('W', time()-3600*24*7); vil hente ut forrige uke. Hvis du vil ha ut timestampet for en spesifikk dato, bruker du mktime. mktime(0,0,0,4,21,1998); vil di deg timestampet for 21.april 1998. Så kan du bruke dette sammen med date for å finne ut hvilken uke dette var på: date('W', mktime(0,0,0,4,21,1998)); Onsdagen i uke 3, 2007: denne er vrien. Jeg googlet den, og fant en funksjon: PHP function weekDayToTime($week, $year, $dayOfWeek) { $dayOfWeekRef = date("w", mktime (0,0,0,1,4,$year)); if ($dayOfWeekRef == 0) $dayOfWeekRef = 7; $resultTime = mktime(0,0,0,1,4,$year) + ((($week - 1) * 7 + ($dayOfWeek - $dayOfWeekRef)) * 86400); return $resultTime; } Bare stapp inn verdiene du har, og den vil gi et timestamp. Dette henter du ut med $stamp = weekDayToTime(3,2007,3); date('d-M-Y', $stamp); Endret 18. februar 2007 av Mads-b Lenke til kommentar
Ellingsen Skrevet 18. februar 2007 Forfatter Del Skrevet 18. februar 2007 Takk. Jeg skal teste den ut og se ann. For og forklare litt nærmere hva jeg vil: Brukerern i firmaet skal kunne sende inn sine timelister via nettet. Så når brukeren logger inn på siden så må det opprettes en uke i databasen for og fylle inn timer i. Den må også sjekke mandagen og søndagen i denne uken og legge ved det. (start og slutt dato for uken). men det store problemet er, hvis brukeren ikke har logget inn på f.eks 4 uker, så skal det settes opp 4 nye uker, alle med start og slutt dato. Vet ikke om dette hjalp noe, men jeg tror nok jeg skal finne ut av det nå. Takk for hjelp Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå