06. september 2006 - 20:39Der er
20 kommentarer og 1 løsning
Sortering i formatet xx-xx-xx så det bliver rigtigt?
Hejsa.
Håber her er en PHP kyndig :D.
Jeg har lidt problemer med en side, hvor resultaterne skal sorteres efter min `dato`. Men da den er tinytext og i formatet 01-01-06, så sorteret den kun efter de første 2 tal, altså f.eks. 01. Jeg bruger bare den alm "select * from tabel order by dato asc" osv.
Hvad gør jeg for at få den til at sortere det ordenligt, så den 17-09-06 ikke er efter 15-10-06?
Jeg ved godt dato er nemmere, men problemet er at man skal kunne skrive en dato ud i fremtiden, og jeg kan ikke lige sige hvad "koden"/nummeret på den dato er..
Hvordan er "strukturen" i et dato felt? Jeg har førhen brugt tinyint til samme, altså fra time() funktionen. Men det er denne jeg ikke kan "koden"/nummeret på, på en dag ude i fremtiden. Kan man gå den anden vej og få lavet f.eks. 10-09-06 til samme talkode som fra time() ?
masik7 -> Det er den jeg bruger. Den sorterer kun efter de første tal, så dvs at 10-10-05 kommer før 09-10-06 :(.
Synes godt om
Slettet bruger
07. september 2006 - 00:16#5
Som der bliver sagt skal du vælge dato type date og hvis du skal have tid på også, skal man vælge datetime, i databasen for det felt hvor du vil have din dato.
coldgate -> Det var sku dejligt, som moocher også skrev hjalp det med at lave den til et dato felt. Men kan man nu lave "strukturen" om, så det ikke er åååå-mm-dd format, men dd-mm-åååå?
Jeg er desværre ikke helt med på de sidste par svar, det ligner nærmere volapyk :D. Men vil lige tilføje at datoen skriver jeg selv, f.eks. 2006-09-08, og er ikke fra time() eller date().. Jeg vil dog gerne ha den til at stå som 08-09-2006. Coldgates lyder meget rigtig, men jeg fatter det ikke helt :D.
Synes godt om
Slettet bruger
08. september 2006 - 08:10#11
Først og fremmest har du ændret din data type til 'date' i databasen? Min vil så skrive 08/09/2006, men denne vil gøre som du vil: echo date("d-m-y", strtotime($r['dato']));
Altså du laver:
$query = mysql_query("SELECT * FROM table ORDER BY dato ASC"); //Hvis dato feltet i databasen ikke er af type date, så vil den sorter datoen som var det en streng, hvor 2005 kommer før 2006. $r = mysql_fetch_array($query); echo date("d-m-y", strtotime($r['dato']));
Årh tak for hjælpen coldgate. Det er perfekt og lige hvad jeg søgte. Tak fordi du gad skære det ud i pap!
Nu er der bare et lille problem.. Kan du ikke lige oprette et "svar" så jeg kan acceptere dig som den rigtige svarer :).
Synes godt om
Slettet bruger
08. september 2006 - 16:59#13
Det kan du tro jeg vil. Som jeg skrev ang. dato-formater: http://dk2.php.net/date, som du kan se i mine kommentarer "echo date("d-m-y", strtotime($r['dato']));" Der vælger vi funktionen date, det har så 2 parameter, som du kan se i linket. Det første er vores format, og det næste er valgfrit. Er det udfyldt så kan vi bestemme en dato, er det bare tomt så er det dato + tid lige nu. (altså paramater 2 er valgfrit)
I vores tilfælde har vi valgt dag-måned-år. (d-m-y), hvis vi f.eks. ændre "y" -> "Y" => får vi "2006" frem for "06".
Jeg har klikket accepter mange gange, men hver gang er det bare som om der sker intet :S.. Jeg fatter ikke det her skod system.. Det virker hverken i IE eller FF :D.
Amen jeg var da sikker på den var markeret når den stod på personen.. Min fejl :D, men det sku vist være lukket nu?
Synes godt om
Slettet bruger
26. september 2006 - 12:59#21
Jeps det er det også, og mange tak for points. Håber det var en god hjælp.
Synes godt om
Ny brugerNybegynder
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.