02. november 2006 - 18:57
Der er
3 kommentarer
Find start og slut dato på bestemt uge
Hejsa,
Jeg sidder med et lille problem. Jeg har et uge nummer. Vha. dette uge nummer skal jeg finde datoen på mandagen og søndagen i den angivne uge.
Jeg har søgt nettet tyndt for scripts, men alle er alt for avanceret til det jeg skal bruge.
Er der en der ude, der kan hjælpe mig eller evt. har en færdig løsning eller et link til en SIMPEL løsning.
På forhånd tusind tak.
Med venlig hilsen
Morten Rugaard
02. november 2006 - 19:12
#1
Her er en mulighed, lavet lige fra hoften. Kan være det ikke virker helt, men noget i den stil i hvert fald.
<?
$uge = "42"; // f.eks. uge 42
$time = time();
$forste_dag_i_aar = mktime(0, 0, 0, 1, 1, date("Y", $time));
$uge_den_forste_i_aar = date("W", $forste_dag_i_aar);
while($uge_den_forste_i_aar != 1) {
$forste_dag_i_aar = $forste_dag_i_aar+86400;
$uge_den_forste_i_aar = date("W", $forste_dag_i_aar);
}
$forste_mandag_i_uge_et = $uge_den_forste_i_aar;
$dato_i_valgte_uge_som_time = $forste_mandag_i_uge_et+($uge*7*86400);
$dato_i_valgte_uge = date("d/m,Y", $dato_i_valgte_uge_som_time);
print "$dato_i_valgte_uge";
?>
07. november 2006 - 14:52
#2
Den 4. januar ligger altid i uge 1. (Hvis den 3. januar er en søndag, - så ligger den i uge52/53 for sidste år).
Så følgende program må kunne gøre det:
<? $aar=2006; $uge=50; ?>
<? $ugedag=mktime(0,0,0,1,7*($uge-1)+4,$aar); ?>
>>> Dag i uge <?=$uge?>: <?=date("d/m-Y",$ugedag)?><br/>
>>> Dag for denne dato: <?=date("w",$ugedag)?> (0 er søndag, 1 er mandag, .. 6 er fredag)<br/>
Mandag er så <?=date("d/m-Y",mktime(0,0,0,1,7*($uge-1)+4-date("w",$ugedag)+1,$aar)); ?><br/>
Søndag er så <?=date("d/m-Y",mktime(0,0,0,1,7*($uge-1)+4-date("w",$ugedag)+7,$aar)); ?><br/>
De to linjer med >>> kan naturligvis undværes. Kan vel nærmest ses som en psedu-dokumentation.
08. november 2006 - 10:22
#3
Noget af det der kan bruges?
Måske skal jeg lige fortælle at det er et veldokumenteret trick i PHP jeg bruger. Den 32. januar er den 1. februar, - den 14. måned i 2006 er den 2. måned i 2007 etc. Og det er 'sikkert' og tager højde for skudår og alting. Så det jeg gør er blot at finde en dato som helt sikkert er i uge X, - nemlig den X*7+4. januar (eller nærmere den X*7+4' dag i året).