Avatar billede prop46 Nybegynder
24. juni 2004 - 15:22 Der er 8 kommentarer og
2 løsninger

dato sortering

Har en side hvor der oprettes opslag. Ved hver oprettelse af opslag skrives en dato ex. 3/5. i et input-felt. Når opslagene hives UD af DB skal de stå i dato-rækkefølge ex. 3/5, 4/7, 1/9 osv. Hvordan gør jeg dette når det der gemmes IKKE er en reel dato set med MySQL øjne?
Avatar billede prop46 Nybegynder
24. juni 2004 - 15:23 #1
Det skal lige siges at datoen IKKE er datoen for oprettelse men datoen for hvornår den opslåede 'begivenhed' finder sted.
Avatar billede nicklasb Nybegynder
24. juni 2004 - 15:24 #2
hvorfor ligger du ikke i stedet et unix-timestamp i databasen? Så kan du også senere udvide din aplikation til også at vise tidspunkt eller at formatere datoen i et andet format hvis dette skulle ønskes!
Avatar billede prop46 Nybegynder
24. juni 2004 - 15:25 #3
:0) Vil du være sød at forklare mig hvad et unix-timestamp er?
Avatar billede nicklasb Nybegynder
24. juni 2004 - 15:31 #4
det er en værdi for hvor mange sekunder der er gået siden 1970 (tror jeg det er).
Altså en værdi der vokser med 1 hvert sekundt. I php kan du få denne værdi for den nuværende tid (da siden blev genereret) ved brug af funktionen time().
eksempel:
<?php
echo time();
?>
Du kan nu formatere denne tid med funktionen date().
eksempel:
<?php
echo date('d/m');
?>
(for at få det på samme form som dit eget eksempel.
Læs mere om de mange muligheder for informationer du kan hive ud af et timestamp på http://dk2.php.net/manual/en/function.date.php

Hvis du nu, som du selv skriver ønsker at finde timestampet for en dato fremme i tiden (datoen for 'begivenheden') bruges funktionen mktime ( http://dk2.php.net/manual/en/function.mktime.php )

Sæt dig ind i denne form for tidsbehandling.. så når du meget længere..!
Avatar billede nicklasb Nybegynder
24. juni 2004 - 15:34 #5
glemte lige;

hvis du så ønsker at formatere et andet timestamp end tiden netop nu, sættes dette blot som en ekstra betingelse i date() -funktionen.
Altså foreksempel
<?php
echo date('d/m', $TidenFraDatabasen);
?>
Avatar billede prop46 Nybegynder
24. juni 2004 - 15:58 #6
Meget interessant.. helt klart noget jeg skal ha' sat mig grundigt ind i, men jeg ku' nu godt tænke mig at finde noget mere simpelt til dette ex. hvis det kan lade sig gøre.
Avatar billede prop46 Nybegynder
24. juni 2004 - 16:02 #7
Eller måske det bar' li' er mig der ikke kan se hvordan jeg 'fodre' ex. 3/5 ind i mktime(0, 0, 0, 3, 5, 0);
Avatar billede prop46 Nybegynder
24. juni 2004 - 16:34 #8
Ku' forestille mig det er noget i retningen af:

$day = $_POST['day'];
$month = $_POST['month'];
$dato = mktime(0,0,0,$day,$month,0);

Og for at hive ud igen:

$dato = date('d/m', $dato);

MEEEEEN.. det virker ikke helt efter hensigten.
Avatar billede prop46 Nybegynder
24. juni 2004 - 20:30 #9
Okay.. svederen.. har fået det til at virke...

nicklasb --> Du får 20 point for at lede mig i den rigtige retning. Syns ikk' jeg vil gi dig 60 for et link :0) Håber du er OK med det !?
Avatar billede nicklasb Nybegynder
24. juni 2004 - 22:03 #10
weee.. fedt du selv fik det til at virke.. er det ikke fedt selv at have fundet løsningen ;)
men ja, problemet for det første placeringen af variablerne i funktionskaldet, samt det manglende årstal (i tilfælde af nogle skulle være i tvivl).
Undskyld jeg ikke fik svaret tidligere, men har ikke lige været ved computeren, og så fandt du jo også selv en løsning.. :)
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