Gå til innhold

Sortere på dato


Anbefalte innlegg

Har en Hva skjer liste. Hvor jeg og andre legger inn hendelser som skal skje. jeg ønsker å sortere disse oppføringene på dato. Har nå ordnet det slik at brukeren velger dato hendelsen skal skje på via combo boxer, slik at oppføringen i feltet blir td 04.01.2004 Hvordan skal jeg sortere hendelesene på dato? Kan gjerne endre måten datoen ser ut på og legges inn på.

Lenke til kommentar
Videoannonse
Annonse

Det er ikke noe problem. Hvis du bare vil snu på tallene bruker du explode.

 

f.eks.:

$dato = "25.01.2004";
$deler = explode(".", $dato);
echo $deler[0];  //output vil da bli 25
echo $deler[1];  //output vil da bli 01
echo $deler[2];  //output vil da bli 2004

 

På den måten kan du lagre den i en ny variabel på denne måten:

 

$NyDato = $deler[2]."-".$deler[1]."-".$deler[0] // 2004-01-25

 

eller på hvilken måte du vil.

 

Ta en kikk på denne linken:

http://no2.php.net/manual/en/function.explode.php

 

Du kan også lage et timestamp av datoen, kikk på:

http://no2.php.net/manual/en/function.mktime.php3

 

Når du har snudd på datoen slik som du vil ha kan du sortere den med sort() hvis det er i en array, eller order by hvis det er en SQL database!

 

Good luck!

Endret av ????????
Lenke til kommentar
  • 9 måneder senere...

Hei!

 

Jeg henter denne opp igjen da jeg ønsker å sortere en liste på datoer. Sorteringen er ikke noe problem. Men da kommer datoen opp som MMDD.

 

Jeg forsøker å finne ut av hvordan jeg skal bruke explode, men får det ikke til. Problemet tror jeg ligger i at jeg ikke får hentet inn feltet dato fra databasen inn i exploden. Datoen er lagret i DATE.

 

Jeg bruker assoc fordi den skal listes opp med linker på en side. Det fikser jeg, men her er kjernen i problemet:

 

Koden:

<?php

  $query        = "SELECT * FROM news1 WHERE kategori=01";
  $flink        = mysql_connect("host", "xxx", "yyy") or die(mysql_error());
  $fresult      = mysql_query($query, $flink) or die(mysql_error());
  $fselect      = mysql_select_db("database", $flink) or die(mysql_error());

$tid = $dato;
$deler = explode("-", $tid);

while($row = mysql_fetch_assoc($fresult)){
echo "$deler[2]<br>";
echo "$deler[1]<br>";
}

?>

 

Hvordan gjør jeg dette i forhold til $row forresten?

 

$row['$deler[01]'] går vel ikke....?

Lenke til kommentar
Jeg foreslår å lagre datoene som timestamp. Da blir de enklere å sortere, og ved hjelp av date kan du formatere den som du selv ønsker.

hvorfor enklere å sortere?

med time_format får du hentet ut datoen som du vil. du er i tillegg ikke begrenset av datoer ned til 1970

 

å konvertere date- eller datetime-kolonnetype til unix-tid er det minste av alle problemer.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...