Avatar billede andersjo Nybegynder
17. november 2006 - 09:27 Der er 8 kommentarer

Dato i ukenummer

Hei.

Jeg vet hvilket uke det er (ukenummer). Hvordan finner jeg datoene i denne uken?


//andersjo
Avatar billede fixxxer Nybegynder
17. november 2006 - 09:33 #1
Avatar billede andersjo Nybegynder
17. november 2006 - 09:45 #2
Hmm, jeg kommer ikke inn på denne artikkelen.

Sorry. The administrator has banned your IP address. :(
Avatar billede kinderaeg Nybegynder
17. november 2006 - 09:45 #3
Der var måske mere rigtigt at referere til kilden selv:
http://www.php.net/manual/en/function.date.php

date("W"); //hvis det er denne datos uge ellers date("W", $date)
Avatar billede andersjo Nybegynder
17. november 2006 - 09:50 #4
Jeg skal lage en liste over dagene (med dato) i en uke. Jeg mottar ukenummeret i en POST og skal generere datoer på grunnlag av ukenummeret.

Om jeg ikke mottar ukenummer i POST bruker jeg date("W") for å sette denne ukens ukenummer som default.
Avatar billede kinderaeg Nybegynder
17. november 2006 - 10:08 #5
Ah, den anden vej rundt, my bad :(

<?php
function WeekToDate ($week, $year) {
  $Jan1 = mktime (1, 1, 1, 1, 1, $year);

  --$week;

  $weekdayJan1 = date ('w', $Jan1);
  $FirstMonday = strtotime(((4-$weekdayJan1)%7-3) . ' days', $Jan1);
  $CurrentMondayTS = strtotime(($week) . ' weeks', $FirstMonday);
  return ($CurrentMondayTS);
}
$iWeekNum = 1;
$iYear = 2006;

$sStartTS = WeekToDate ($iWeekNum, $iYear);
$sStartDate = date ("F d, Y", $sStartTS);
$sEndDate = date ("F d, Y", $sStartTS + (6*24*60*60));

echo $sStartDate.' - '.$sEndDate;
?>
Avatar billede fixxxer Nybegynder
17. november 2006 - 10:10 #6
Fra førnævnte forumtråd:

    /**
    * convert week no,Day of week and Year to Date
    *
    * @var int $WeekNo - week no (1-52)
    * @var int $Day - day of the week (0-6) 0-Sunday, 6-Saturday
    * @var int $Year - Year
    */
    function week_to_date($WeekNo,$Day,$Year)
    {
        $WeekNo--;
        $week_date = date('Y-m-d',strtotime($Year."-01-04 + ".$WeekNo." weeks"));
        $wDay = date('w',strtotime($week_date));
        if($Day < $wDay){
            $day_offset = $wDay - $Day;
            $date = date('Y-m-d',strtotime($week_date." + -".$day_offset." days"));
        }elseif($Day > $wDay){
            $day_offset = $Day - $wDay;
            $date = date('Y-m-d',strtotime($week_date." + ".$day_offset." days"));           
        }else{
            $date = $week_date;
        }
        return $date;
    }
Avatar billede fixxxer Nybegynder
17. november 2006 - 10:13 #7
To måder at opnå samme resultat - omend jeg synes at sidstnævnte funktion giver mulighed for større fleksibilitet.
Avatar billede coderdk Praktikant
17. november 2006 - 23:19 #8
date("w") den korrekte uge? Jeg havde engang problemer med den, og brugte i stedet strftime("%V") som er korrekt...
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