Meowsalot: Einfachere Schreibweise?

Hallo,

ich frage mich gerade, ob man folgendes auch einfacher / verkürzt schreiben könnte?

if ($array['transportauftrag'] == "Ja" && $array['transportauftrag_von'] != "0000-00-00") {

	$transportauftrag_von 		= explode("-",$array['transportauftrag_von']);
					
	$tag_transportauftrag_von 	= $transportauftrag_von[2];
	$monat_transportauftrag_von	= $transportauftrag_von[1];
	$jahr_transportauftrag_von	= $transportauftrag_von[0];

	$AnzeigeVon = 
    $tag_transportauftrag_von.".".$monat_transportauftrag_von.".".$jahr_transportauftrag_von;
				
} else {
	$AnzeigeVon = $array['von'];
}

if ($array['transportauftrag'] == "Ja" && $array['transportauftrag_bis'] != "0000-00-00") {

	$transportauftrag_bis 		= explode("-",$array['transportauftrag_bis']);
					
	$tag_transportauftrag_bis 	= $transportauftrag_bis[2];
	$monat_transportauftrag_bis	= $transportauftrag_bis[1];
	$jahr_transportauftrag_bis	= $transportauftrag_bis[0];

	$AnzeigeBis = 
     $tag_transportauftrag_bis.".".$monat_transportauftrag_bis.".".$jahr_transportauftrag_bis;
} else {
	$AnzeigeBis = $array['bis'];
}

Bis bald!
Bernd

  1. hallo

    Hallo,

    ich frage mich gerade, ob man folgendes auch einfacher / verkürzt schreiben könnte?

    if ($array['transportauftrag'] == "Ja" && $array['transportauftrag_von'] != "0000-00-00") {
    
    	$transportauftrag_von 		= explode("-",$array['transportauftrag_von']);
    					
    	$tag_transportauftrag_von 	= $transportauftrag_von[2];
    	$monat_transportauftrag_von	= $transportauftrag_von[1];
    	$jahr_transportauftrag_von	= $transportauftrag_von[0];
    
    	$AnzeigeVon = 
      $tag_transportauftrag_von.".".$monat_transportauftrag_von.".".$jahr_transportauftrag_von;
    

    Wie wäre es mit einem Array Reverse nach explode und anschliessendem Join?

    --
    Neu im Forum! Signaturen kann man ausblenden!
  2. Hallo

    ich frage mich gerade, ob man folgendes auch einfacher / verkürzt schreiben könnte?

    Kurze Version: Ja, kann man.

    if ($array['transportauftrag'] == "Ja" && $array['transportauftrag_von'] != "0000-00-00") {
    
    	$transportauftrag_von 		= explode("-",$array['transportauftrag_von']);
    					
    	$tag_transportauftrag_von 	= $transportauftrag_von[2];
    	$monat_transportauftrag_von	= $transportauftrag_von[1];
    	$jahr_transportauftrag_von	= $transportauftrag_von[0];
    
    	$AnzeigeVon = 
        $tag_transportauftrag_von.".".$monat_transportauftrag_von.".".$jahr_transportauftrag_von;
    

    Lange Version: Wie man damit am besten umgeht, kommt auf die Datenquelle für $array an.

    • Datenquelle Datenbank: Wie PHP auch, haben die verschiedenen Datenbanksysteme Funktionen zur Formatierung von Datumsangaben. Bei MySQL beispielsweise trägt die Funktion den als Eselsbrücke praktischen Namen DATE_FORMAT. Mit DATE_FORMAT(transportauftrag_von, '%d.%m.%Y') AS Datum_de kannst du dein Datum schon bei der Abfrage umformatieren.
    • In PHP gibt es diverse Funktionen, um Datumsangaben zu formatieren beziehungsweise umzuformatieren. Schau dich im Manual nach Datums-und-Zeitfunktionen um, die „format“ oder „strf“ als Teil ihres Namens haben. Im Zweifelsfall, also wenn man nichts passendes findet, kann man dabei den Umweg über die Umbildung der Quellangabe zu einem Unix-Zeitstempel gehen.

    Tschö, Auge

    --
    Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
    Kleine freie Männer von Terry Pratchett
  3. Lieber Meowsalot,

    vielleicht nicht kürzer, aber übersichtlicher:

    /**
     * pretty print a MySQL date
     *
     * @param string YYYY-MM-DD
     * @return string DD.MM.YYYY
     */
    function nice_date ($y_m_d) {
        return sprintf(
            '%3$02d.%2$02d.%1$04d',
            substr($y_m_d, 0, 4), // YYYY
            substr($y_m_d, 5, 2), // MM
            substr($y_m_d, 8, 2) // DD
        );
    }
    
    // Ausgabedaten
    $AnzeigeBis = (
        $array['transportauftrag'] == "Ja"
        && $array['transportauftrag_bis'] != "0000-00-00"
        ? nice_date($array['transportauftrag_bis'])
        : $array['bis']
    );
    
    $AnzeigeVon = (
        $array['transportauftrag'] == "Ja"
        && $array['transportauftrag_von'] != "0000-00-00"
        ? nice_date($array['transportauftrag_von'])
        : $array['von']
    );
    

    Liebe Grüße,

    Felix Riesterer.