Avatar billede ajhdk Nybegynder
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
Avatar billede jakobdo Ekspert
26. juni 2007 - 13:57 #1
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 />';
        }
    }
}

?>
Avatar billede ajhdk Nybegynder
26. juni 2007 - 14:24 #2
ok :-) jeg tester det lige af lidt senere (arbejdet kalder :-)    og vender tilbage

men tak indtil videre :-)

mvh
anders
Avatar billede ajhdk Nybegynder
26. juni 2007 - 15:21 #3
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
Avatar billede jakobdo Ekspert
26. juni 2007 - 15:40 #4
Det kan jeg godt se ja!
Det skal lige rettes til, må kigge på det senere! :o)
Avatar billede ajhdk Nybegynder
26. juni 2007 - 15:49 #5
ok det lyder super :-)
Avatar billede jakobdo Ekspert
26. juni 2007 - 16:20 #6
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 />';
        }
    }
}

?>
Avatar billede mccookie Seniormester
26. juni 2007 - 19:43 #7
$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
Avatar billede mccookie Seniormester
26. juni 2007 - 19:52 #8
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++;
}
Avatar billede mccookie Seniormester
26. juni 2007 - 19:57 #9
<?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++;
    }

?>
Avatar billede ajhdk Nybegynder
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
Avatar billede ajhdk Nybegynder
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.
Avatar billede jakobdo Ekspert
27. juni 2007 - 10:46 #12
Svar!
Avatar billede jakobdo Ekspert
27. juni 2007 - 13:10 #13
Takker for point.
Avatar billede ajhdk Nybegynder
27. juni 2007 - 15:46 #14
selv tak du :-) se venligst mit nyest spørgsmål jeg har lidt problemer med koden her
Avatar billede ajhdk Nybegynder
27. juni 2007 - 15:48 #15
her er resultatet af mit problem...
se datoerne... hvis men vælger uge 26 og 2007 så virker det fint

http://ajh.phpnet.us/test2.php?w=53&y=2006
Avatar billede jakobdo Ekspert
27. juni 2007 - 16:00 #16
Der bliver jo slet ikke printet noget ud!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester