Avatar billede jop... Nybegynder
02. december 2007 - 19:08 Der er 13 kommentarer og
1 løsning

Kalender - Omkonvertere dato til ugenr. og dag

Jeg er igang med en kalender i php, hvor jeg har brug for at omkovertere en dato til et ugenummer, samt ugedag inden jeg gemmer i databasen. Jeg har prøvet en del forskelligt, men har endnu ikke fundet en løsning der virker.

Jeg har disse variabler at lave det ud fra:
$dato, $måned og $år.

Dvs har jeg en dato der hedder:
12-12-2007

Skal jeg have følgende output.
$uge = 50
$dag = onsdag
$aar = 2007

Har I nogle forslag? Evt. bare til hvordan jeg skal komme igang på den rigtige måde?

//René
Avatar billede zynzz Praktikant
02. december 2007 - 20:21 #1
Avatar billede jop... Nybegynder
02. december 2007 - 20:31 #2
ja, jeg har kigget på den, men jeg kan ikke helt overskue hvordan jeg skal bruge den ift. det jeg ønsker ovenfor?
Avatar billede yHec Novice
02. december 2007 - 21:18 #3
function lavugedag($date) {
    $dag=array (
        "1"=>"mandag",
        "2"=>"tirsdag",
        "3"=>"onsdag",
        "4"=>"torsdag",
        "5"=>"fredag",
        "6"=>"lørdag",
        "7"=>"søndag"
        );
    return $dag[$date]." d. ";
}

$uge=date('W',strtotime('12-12-2007'));
$dag=lavugedag(date('N',strtotime('12-12-2007')));
$år=date('Y',strtotime('12-12-2007')));

Det burde gøre det!

/y
Avatar billede yHec Novice
02. december 2007 - 21:23 #4
Hov...
Du bør formatere din dato åååå-mm-dd
Også er der en slutparantes for meget i $aar linjen.
Avatar billede yHec Novice
02. december 2007 - 21:24 #5
også skal $år være $aar
Avatar billede jop... Nybegynder
03. december 2007 - 08:53 #6
Ser godt ud. Jeg kigger lige på den senere idag, og så får du en tilbagemelding.
Avatar billede matz Nybegynder
03. december 2007 - 22:39 #7
Måske tilføj dette her:

return $dag[$date]." d. ".date('j')." ";

Og skift denne linje:

$år=date('Y',strtotime('12-12-2007')));

Med:

$år=date('Y',strtotime('12-12-2007'));

:)
Avatar billede yHec Novice
03. december 2007 - 22:47 #8
jeg har gjort opmærksom på den overskydende parantes.

hvid du tilføjer .date('j')." ", får du en fejlmelding, idet der ikke er tilføjet et timestamp, og det ikke hentes ind i funktionen vhj den argumentliste. Hvis man vil have en dato på, gøres dette:
$dag=lavugedag(date('N',strtotime('12-12-2007'))).date('j',strtotime('12-12-2007')).".";
Som vil outputte: "onsdag d. 12."

Læs funktionen.

/y
Avatar billede yHec Novice
03. december 2007 - 22:48 #9
Hvis man bruger date() uden timestamp, returnerer den dags dato.

/y
Avatar billede coderdk Praktikant
04. december 2007 - 22:55 #10
$dato = 12;
$maaned = 12;
$aar = 2007;

setlocale(LC_ALL, "da_DK", "danish", "da_DK.ISO8859-1");
$ts = mktime(0,0,0,$maaned,$dato,$aar);
$ugenr = strftime("%V", $ts);
$ugedag = strftime("%A", $ts);

echo "Ugenr: $ugenr Ugedag: $ugedag";
Avatar billede jop... Nybegynder
11. december 2007 - 10:39 #11
Det virker perfekt.

Jeg endte til sidst med at bruge coderdk's løsning, da den var mest "effektiv".

Men smid et svar begge to, så fordeler jeg point  :-)
Avatar billede coderdk Praktikant
11. december 2007 - 10:45 #12
Aight :)
Avatar billede jop... Nybegynder
16. december 2007 - 10:48 #13
Lukker den her.

Y - hvis du kommer tilbage, så skal jeg nok finde lidt point til dig også.. :-) 

Tak for hjælpen begge 2.
Avatar billede yHec Novice
16. december 2007 - 11:58 #14
Jamen så kommer jeg da tilbage...

;-)

/y
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