Erledigt: Zahlenreihenfolge mit Php ändern

 


Martin R.
Veteran

08.07.11
15:53 Uhr
Editiert: 08.07.11, 17:55 Uhr
Das habe ich: $falschezahl = „12.34.56“
Das brauch ich: $richtigezahl = „56.34.12“

Gibts dafür vielleicht eine nette Php-Lösung um die Zahlen zwischen den Punkten umzudrehen?



Falls von Interesse: Es geht darum, daß ich Wordpress-Posts anhand eines Datums in Custom-Fields sortiere. Das geht mit einer Wordpress-Funktion ganz leicht. Die sortiert allerdings nur Zahlen und keine deutschen Datumsangaben. Also damit es richtig sortier wird muss ich das Datum so angeben: yy.mm.dd will es dann aber so ausgeben: dd.mm.yy

  1. <?php query_posts(array(
  2. 'posts_per_page' => 2,
  3. 'meta_key' => 'Datum',
  4. 'meta_value' => date('y.m.d'),
  5. 'meta_compare' => '>',
  6. 'orderby' => 'meta_value',
  7. 'order' => 'ASC'
  8.  
  9. )); ?>
Quelltext in Zwischenablage kopieren
Link zu diesem Beitrag in die Zwischenablage kopieren
Mister Ad
Werbung
Schon mal bei Zalando, Amazon oder eBay geguckt? Vielleicht wirst du dort fündig.

 
soma
Überläufer

08.07.11
16:53 Uhr
Bei einem Datum sollte es doch bestimmt auf dem Datumsobject ein DateFormat geben, welches Dir die Reihenfolge ausgibt wie Du es brauchst.

ODER:

Möchte wetten, dass es so gehen wird, ist sehr handgemacht. Zahl in String umwandeln. Mittels Splitten am Punkt trennen und in ein Array geben (Sollte Split glaube ich sowieso liefern das Array). Array sortieren und danach die Einzelteile wieder zusammenfügen. String in Zahl umwandeln.

Voila

Denke so geht es, eventuell zu kompliziert und es gibt was Fertiges in der PHP API. Arbeite nicht so viel mit PHP...

Vielleicht hilfts Dir ja trotzdem.
Link zu diesem Beitrag in die Zwischenablage kopieren
Jonis
Veteran

08.07.11
18:27 Uhr
einfach umdrehen/rückwärts mit strrev?

//e: okay, zu kurzgedacht lol
Link zu diesem Beitrag in die Zwischenablage kopieren
Martin R.
Veteran

08.07.11
18:37 Uhr
Lösung:

  1. <?php
  2. $datum = $falschezahl;
  3. $arr = explode('-', $datum);
  4. $richtigezahl = $arr[2].'-'.$arr[1].'-'.$arr[0];
  5. ?>
Quelltext in Zwischenablage kopieren
Link zu diesem Beitrag in die Zwischenablage kopieren
Martin R.
Veteran

08.07.11
18:43 Uhr
Irrelevanter Beitrag (anzeigen):

Link zu diesem Beitrag in die Zwischenablage kopieren
caZpa
Veteran

08.07.11
18:47 Uhr
Datum kannst du auch mit the_date() formatiert ausgeben (innerhalb der loop)
Link zu diesem Beitrag in die Zwischenablage kopieren
loeffler
Veteran

08.07.11
19:59 Uhr
Auch wenn du schon eine Lösung hast, als Ergänzung vielleicht.

Wenn es wirklich nur um Datumsangaben geht und du bei date ein „richtiges“ Datumsformat angibst (bspw. Y-m-d), könntest du auch einfach mit strtotime() arbeiten.

  1. $falschesDatum = '2011-07-08';
  2. $richtigesDatum = date('d.m.Y', strtotime($falschesDatum));
Quelltext in Zwischenablage kopieren
Link zu diesem Beitrag in die Zwischenablage kopieren
Martin R.
Veteran

08.07.11
20:53 Uhr
  1. $falschesDatum = '2011-07-08';
  2. $richtigesDatum = date('d.m.Y', strtotime($falschesDatum));
Quelltext in Zwischenablage kopieren

Jo, cool, geht. Und scheint wohl die elegantere Lösung zu sein. Nehm ich, Danke )
Link zu diesem Beitrag in die Zwischenablage kopieren
 
#