26. juni 2007 - 12:39
Der er
14 kommentarer og 2 løsninger
Dato for første dag på en vilkårlig uge
Kan jeg hvis jeg kun har et uge nummer og et årstal (f.eks: uge 42 år 2006) finde dato'en for mandag i den uge? og for den sags skyld også resten. Altså Uge: 42 År: 2006 Mandag dato = ? Tirsdag dato = ? osv osv. Med venlig hilsen Anders
Annonceindlæg fra Computerworld it-jobbank
Det er ikke flot, men det virker! :o) <?php //http://www.eksperten.dk/spm/785029 $week = 42; $year = 2006; $startDate = mktime(0, 0, 0, 1, 1, $year); for($i = 1; $i<54; $i++) { $tempDate = strtotime("+".$i." week",$startDate); $tempWeek = date('W',$tempDate); $tempYear = date('Y',$tempDate); if($tempWeek == $week && $tempYear == $year) { for($x = 1; $x<8; $x++) { echo date('l d F Y',strtotime("+".$x." day",$tempDate)) . '<br />'; } } } ?>
ok :-) jeg tester det lige af lidt senere (arbejdet kalder :-) og vender tilbage men tak indtil videre :-) mvh anders
jakobdo: din kode tager en uge fra datoen og frem. Kan det gøres så den tager selve ugen så hvis du er på onsdag så har den mandag og tirsdag med også fra samme uge og ikke næste uge? :) mvh anders
Det kan jeg godt se ja! Det skal lige rettes til, må kigge på det senere! :o)
Sådan? <?php //http://www.eksperten.dk/spm/785029 $week = 49; $year = 2005; $startDate = mktime(0, 0, 0, 1, 1, $year); $startDay = date('w',$startDate); if($startDay !== 0) { $startDate = mktime(0, 0, 0, 1, 1 - $startDay, $year); } for($i = 1; $i<54; $i++) { $tempDate = strtotime("+".$i." week",$startDate); $tempWeek = date('W',$tempDate); $tempYear = date('Y',$tempDate); if($tempWeek == $week && $tempYear == $year) { for($x = 1; $x<8; $x++) { echo date('l d F Y',strtotime("+".$x." day",$tempDate)) . '<br />'; } } } ?>
$year = 2007; $week = 42; $day = "Mon"; $week = $week -1; $timestamp_year = mktime(0,0,0,1,1,$year); echo date("W: D, d M Y",strtotime("+$week week $day",$timestamp_year)); Denne her klare også problemet hvis jeg har forstået dit spørgsmål korrekt. Det drejer sig om een dag ad gangen
Denne her udskriver hele ugen: $year = 2007; $week = 42; $dage = array('Mon','Tue','wed','Thu','Fri','Sat','Sun'); $week = $week -1; while($a < count($dage)) { $timestamp_year = mktime(0,0,0,1,1,$year); echo date("W: D, d M Y",strtotime("+$week week $dage[$a]",$timestamp_year)) . "<br>"; $a++; }
<?php $year = 2007; $week = 42; $dage = array('Mon','Tue','wed','Thu','Fri','Sat','Sun'); $week = $week -1; while($a < count($dage)) { $timestamp_year = mktime(0,0,0,1,1,$year); echo "Uge:" . date("W: d/m-Y",strtotime("+$week week $dage[$a]",$timestamp_year)) . "<br>"; $a++; } ?>
27. juni 2007 - 09:21
#10
jakobdo: nu er det stort set rigtigt. Den printer en uge fra mandag til søndag... bare næste uge :D Jeg går ud fra jeg selv kan rette det - det var mere metoden jeg gik efter og det ser jo ud som om den er god nok her :-) smider du et svar så vender jeg lige tilbage om jeg kan få det rettet mvh anders
27. juni 2007 - 09:29
#11
mccookie: dit script virker som det skal. Jeg deler point mellem dig og jakobdo. Begge to tak for hjælpen.
27. juni 2007 - 10:46
#12
Svar!
27. juni 2007 - 13:10
#13
Takker for point.
27. juni 2007 - 15:46
#14
selv tak du :-) se venligst mit nyest spørgsmål jeg har lidt problemer med koden her
27. juni 2007 - 16:00
#16
Der bliver jo slet ikke printet noget ud!
Vi tilbyder markedets bedste kurser inden for webudvikling