[PHP] Sorteren op Datum DD-MM-'JJ

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • MaNDaRK
  • Registratie: Oktober 2001
  • Laatst online: 21:40
Matched: sorteren, datum, op
Ik heb in eem mySql database datums opgeslagen in een TinyText van het formaat: DD-MM-'JJ nu wil ik dit sorteren, met de volgende code:
code:
1
$select = "SELECT * FROM kagenda ORDER BY datum";

Dit doet hij wel, maar niet goed. Hij wordt nu gesorteerd op de dag zeg maar. Is er een mogelijkheid dat ik dit wel kan sorteren met dit formaat :? en hoe moet ik dit doen? Ik heb al ge searched maar kan het niet vinden, op de site van PHP kon ik het ook niet vinden.

Je kan wel goed sortern, maar dan moet je je datum opslaan in een Datum field met het volgende formaat: YYYY-MM-DD en dit is wel goed te sorteren, maar het formaat ziet er niet uit... hopelijk kunnen jullie me een handje helpen... want ik zie door de datums de tijd niet meer ;)

Acties:
  • 0 Henk 'm!

  • 2
  • Registratie: November 2000
  • Laatst online: 26-05-2021

2

Matched: sorteren
Anders laat je het door PHP sorteren m.b.v. strtotime()

Acties:
  • 0 Henk 'm!

  • blackd
  • Registratie: Februari 2001
  • Niet online
Matched: sorteren, datum, op
Je hebt denk ik 3 opties:
1. Sla je datum op als timestamp, hierdoor kan je makkelijk een mooie datum uitspugen, en kan je ook simpel sorteren (timestamp is immers oplopend)
2. Je methode van YYYY-MM-DD gebruiken, maar dan moet je bij weergave de boel omgooien (YYYY en DD verwisselen dus)
3. Je methode van DD-MM-YY gebruiken, maar dan moet je nog VOOR je gaat sorteren YY en DD omgooien, dus dat gaat denk ik niet echt lukken (in een query dus).

Ik zou persoonlijk de timestamp gebruiken :)

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20:09

Dido

heforshe

Matched: sorteren, datum, op
Een textveld is geen datumveld, dacht ik :?

Hoe zou je willen dat-ie dd-mm-'yy herkend, en weet hoe het gesorteerd zou moeten worden (volgens jou)?

Kun je'm niet opslaan als datum en die aan de front-end opmaken? Of desnoods een tweede veld maken met dezelfde datum in een datumformaat, en daarop sorteren.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 01-09 11:48
Geen matches
De MySQL-functie DATE_FORMAT is heeeel handig :)

Acties:
  • 0 Henk 'm!

  • blackd
  • Registratie: Februari 2001
  • Niet online
Matched: op
Op woensdag 24 april 2002 11:54 schreef elviver het volgende:
De MySQL-functie DATE_FORMAT is heeeel handig :)
Kan je daarmee mijn puntje 3 werkend krijgen?

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Matched: datum, op
Sla alsjeblieft datums op in de daarvoor bedoelde datum-velden.

Als je ze er op een andere manier uit wil hebben dan ze default komen ga je met date_format aan de slag, niet met allerlei ranzige methoden als tekstvelden gebruiken ;)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Matched: op
Er is maar 1 juiste oplossign voor dit probleem en dat is het juiste type gebruiken voor de juiste data!

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • MaNDaRK
  • Registratie: Oktober 2001
  • Laatst online: 21:40
Matched: op
:) super, ik ga er meteen mee werken, ik zal de oplossing nog wel posten hier!

Bedankt alvast voor de reacties! :D

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Matched: sorteren
2:
Anders laat je het door PHP sorteren m.b.v. strtotime()
wellicht overbodig: nooit doen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • 2
  • Registratie: November 2000
  • Laatst online: 26-05-2021

2

Matched: op
Op woensdag 24 april 2002 12:09 schreef drm het volgende:

[..]

wellicht overbodig: nooit doen.
Nee het is ongeveer de smerigste functie ooit maar dat zou ik als enige oplossing kunnen bedenken..

Acties:
  • 0 Henk 'm!

Verwijderd

Matched: op
gewoon als type "date" in je mysql-db opslaan
dan de output in php omzette klaar ?
code:
1
2
$arr = explode('-', $obj->date);
$date = $arr[2].'-'.$arr[1].'-'.$arr[0];

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Matched: op
housem:
gewoon als type "date" in je mysql-db opslaan
dan de output in php omzette klaar ?
code:
1
2
$arr = explode('-', $obj->date);
$date = $arr[2].'-'.$arr[1].'-'.$arr[0];
Ook niet nodig. Je hebt niet voor niets al die Date and Time Functions

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Geen matches
kan inderdaad ook, tis maar net wat je leuk vind :P

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Geen matches
housem:
kan inderdaad ook, tis maar net wat je leuk vind :P
Strict genomen is het maar net wat netjes is ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • MaNDaRK
  • Registratie: Oktober 2001
  • Laatst online: 21:40
Matched: datum, op
De oplossing:

housem, ik heb jouw metode ongeveer gebruikt:

Ik heb eerst de datum van een tiny text naar een DATE field verhuisd... met de volgende code heb ik de datum naar een normaal leesbaar formaat gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$datum = $list->datums;

$arDate=explode("-", $datum); 
//for their existance first
$day=d;
$month=M;
if($arDate[1] == 00){
    $arDate[1] = 01;
    unset ($month);
}
if($arDate[2] == 00){
    $arDate[2] = 01;
    unset ($day);
}
$timeStamp=strtotime($arDate[1]."/".$arDate[2]."/".$arDate[0]);

$gooddate=date("$day $month Y", $timeStamp);


Bedankt allemaal! :)

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Matched: datum, op
En er is weer een blijde ziel bij die noooooooit meer de datum in een textveld zal opslaan :)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Matched: datum
??????????

Waarom niet gewoon
code:
1
SELECT UNIX_TIMESTAMP(datumveld) FROM blaat

en vervolgens
PHP:
1
<?$gooddate=date("d m Y", $timeStampfromdb);?>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Matched: datum, op
Op donderdag 25 april 2002 11:55 schreef Janoz het volgende:
Waarom niet gewoon
code:
1
SELECT UNIX_TIMESTAMP(datumveld) FROM blaat

en vervolgens
PHP:
1
<?$gooddate=date("d m Y", $timeStampfromdb);?>
Of:
code:
1
"select DATE_FORMAT('%d %m %Y', datumveld) as gooddate FROM blaat WHERE blaat ORDER BY datumveld"

?

Acties:
  • 0 Henk 'm!

  • smaij
  • Registratie: November 2000
  • Laatst online: 23:17
Matched: datum, op
Interessant topic dit.. Op de manier waar ik het nu doet zal het door de betere onders ons niet echt gewaardeert worden.. Ik heb namelijk een time() (aantal secondes vanaf 1970 ofzoiets) veld in mijn tabellen staan, en een appart Datum veld. Ik order dus op time() en haal de Datum eruit in plaats van time().. Ik ga dit zeker een keer allemaal uitproberen :p

Acties:
  • 0 Henk 'm!

Verwijderd

Matched: datum, op
Op donderdag 25 april 2002 12:08 schreef ACM het volgende:

[..]

Of:
code:
1
"select DATE_FORMAT('%d %m %Y', datumveld) as gooddate FROM blaat WHERE blaat ORDER BY datumveld"

?
DATE_FORMAT(datumveld, '%d %m %Y') bedoel je zeker :)
Pagina: 1