Avatar billede kwudo Nybegynder
08. august 2012 - 10:36 Der er 4 kommentarer

Udskrive uge numre 1 år frem

Hej alle sammen.

Jeg kunne godt tænke mig en dropdown der viser uge numre fra den uge vi er i, i dag og så 1 år frem.

Altså:

32, 2012
33, 2012
..
..
..
30, 2013
31, 2013
32, 2013

Jeg har selv lavet noget, men kan ikke helt få det til at virke som jeg gerne vil.

        for ($i = 1; $i <= 52; $i++)
            {

Her tager den bare fra uge 1 og så frem til uge 52 i samme år, kan ikke helt finde ud af hvordan den skal starte fra aktuelle uge og så fortsætte 1 år frem.

Hvordan skal med liige gøre det? :-)
Avatar billede claes57 Ekspert
08. august 2012 - 10:47 #1
aktuelle ugenummer
uge$=date('W');
for ($i = 0; $i <= 51; $i++)
            { uge$+$i
Avatar billede limemedia Nybegynder
08. august 2012 - 10:54 #2
$thisMonth = date('W');
$thisYear = date('Y');

for ($i = 1; $i < 53; $i++) {
    echo $thisMonth.', '.$thisYear.'<br />';

    if ($thisMonth++ > 53) {
        $thisMonth = 1;
        $thisYear++;
    }   
}
Avatar billede olebole Juniormester
08. august 2012 - 19:18 #3
<ole>

I år har vi 52 uger. 2013's uge 1 begynder den 31/12 2012. Derfor går det nok ikke, at #2 tæller op til 54 uger i 2012.

Det er lidt mere komplekst at regne med uger, hvis det skal overholde ISO 8601. Der er flere muligheder, men dette kunne være et bud:

function getWeeks() {
    $lastWeekThisYear = date('d.m.Y - W', strtotime(date('Y').'-W53'))<53 ? 52 : 53;
    $thisWeek = date('W');
    $tmp = range($thisWeek, $lastWeekThisYear);
    return array_merge($tmp, range(1, 52-count($tmp)));
}

$weeks = getWeeks();
echo implode('<br>', $weeks);

/mvh
</bole>
Avatar billede olebole Juniormester
08. august 2012 - 19:22 #4
- og første linje i funktionen skal vel bare se sådan ud:

$lastWeekThisYear = date('W', strtotime(date('Y').'-W53'))<53 ? 52 : 53;
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

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