Avatar billede dugi Nybegynder
25. januar 2006 - 10:12 Der er 9 kommentarer og
1 løsning

date() til unix

Hejsa,

Jeg sidder her med et mindre problem. Jeg skal have lavet en "uge-kalender" hvor man kan booke bestemte tider for de forskellige dage.

"kaleneren" skal baseres på uge nr., forstået på den måde at der bliver valgt et uge nr. - udfra det valgte uge nummer skal jeg så finde datoerne på mandag, tirsdag (...) søndag i den angivne uge.

Mit problem er så, at jeg ikke ved hvordan jeg skal få konverteret date('W') om til et unixstamp som jeg så kan bruge til at finde datoen på den valgte ugedag.

Nogen som ved hvordan dette kan lade sig gøre, eller som evt. har andre idéer - som evt. skulle gøre det hele nemmere.

Ved godt PEAR har en indbygget kalender, men da jeg ikke har mulighed for at kunne installerer den, skal det udelukkende kodes i PHP.

Håber der er nogle der kan hjælpe.
På forhånd tusind tak.

Med venlig hilsen
Morten rugaard
Avatar billede barklund Nybegynder
25. januar 2006 - 10:31 #1
PEAR skal ikke installeres - PEAR er bare PHP-filer, som du kan lægge på din server og bruge lige som alle andre PHP-filer.

Derudover kan du ikke med et ugenummer unikt bestemme et timestamp - du skal jo også have året? Har du det, kan det dog godt lade sig gøre.

--
Morten Barklund
Avatar billede sone Nybegynder
25. januar 2006 - 10:32 #2
Så er der nok kun den hårde vej:
- Hvilken ugedag er 01.01.YYYY
- Ud fra den ugedag kan du finde den første mandag i året
- Når du har mandagen, så funder du dennes ugenr.
- Forskellen i uger (x) ligger du til mandagens timestamp, dvs. x*7*86400
Avatar billede barklund Nybegynder
25. januar 2006 - 10:37 #3
Teoretisk set kunne man misse et skudsekund :)

Derudover er det ikke så pæn en løsning - og strptime() kan nok klare det for dig, men den er PHP5.1+ only :(

--
Morten Barklund
Avatar billede barklund Nybegynder
25. januar 2006 - 10:41 #4
Hm, fandt lige følgende funktion fra gemmerne:

function get_mandag($ugenummer, $aar) {
    return mktime(0, 0, 0, 1, 1 + ((8 - date("w", mktime(0,0,0,1,1,$aar))) % 7) + ($ugenummer - 2) * 7, $aar);
}

Den giver netop timestamp for en mandag i en uge ud fra ugenummer og år :)

--
Morten Barklund
Avatar billede barklund Nybegynder
25. januar 2006 - 10:43 #5
Den skal dog attribueres min buddy razor(.dk) :)
Avatar billede razor Nybegynder
25. januar 2006 - 11:05 #6
Den har vist lidt problemer - men afhaengig af hvor sikker en approksimering du skal bruge, ville jeg overveje at bruge en anden loesning :P Der er ogsaa en, der har lavet noget paa http://php.net/strftime som faktisk ser ud til at virke:

http://razor.dk/week.php
Avatar billede barklund Nybegynder
25. januar 2006 - 11:09 #7
razor er teh bomb!
Avatar billede dugi Nybegynder
25. januar 2006 - 17:47 #8
Nu faldt jeg faktisk over et indlæg, en anden person havde skrevet - hvor der var en funktion som virker 100%.

Dog har jeg prøvet den funktion razor giver, den virker også - så derfor vil jeg gerne tilgive pointene til barklund eller razor, i bestemmer selv? :)
Avatar billede razor Nybegynder
25. januar 2006 - 17:48 #9
Det er mest fair at jeg faar dem alle sammen da barklund har flere end jeg har ;)
Avatar billede barklund Nybegynder
26. januar 2006 - 09:46 #10
(razor snyder)
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