• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Function aus Datetime

T4k3C4r3

Mitglied
Guten Tag PHPler,

Gleich zur Frage:

Wie kann ich aus einem Datetime Format (englisches Format) ein deutsches Format daraus machen?

WICHTIG: Das Ganze soll eine Funktion sein und nicht direkt im QUERY des MySQLs zustande kommen.

Danke schonmal.

Mfg
 
Auch in MySQL-Statements kann man sprachabhängige Formatierungen hinterlegen. Wie sieht denn das Statement aktuell aus und was fehlt?



Im moment habe ich diese Funktion!!, nur die macht nicht das gewünschte.

PHP:
function datetime($datetime) {
    
    $stamp['date']    =    sprintf("%02d.%02d.%04d",
                             substr($datetime, 6, 2),
                             substr($datetime, 4, 2),
                             substr($datetime, 0, 4));
                                            
    $stamp['time']    =    sprintf("%02d:%02d:%02d",
                             substr($datetime, 8, 2),
                             substr($datetime, 10, 2),
                             substr($datetime, 12, 2));

    return $stamp;
}
 
nur hab ich nichts passendes/funktionierendes gefunden.
Sorry, das kann ich mir nicht vorstellen. In der Doku findet man das ja sogar.
PHP:
<?php

   function convertDateTime($date, $lang="de")
   {
      $result = $date;
      
      switch ($lang)
      {
          case "de": $result = date ("d.m.Y H:i", strtotime($date));
                     break;
          case "en": $result = date ("Y-m-d H:i", strtotime($date));
                     break;
      }
      
      return $result;
   }
   
   $date = "2012-12-09 14:18";
   
   echo "Deutsch: " . convertDateTime($date, "de") . "<br>";
   
   echo "Englisch: " . convertDateTime($date, "en") . "<br>";
   
?>
 
PHP:
<?php

   function convertDateTime($date, $lang="de")
   {
      $result = $date;
      
      switch ($lang)
      {
          case "de": $result = date ("d.m.Y H:i", strtotime($date));
                     break;
          case "en": $result = date ("Y-m-d H:i", strtotime($date));
                     break;
      }
      
      return $result;
   }
   
   $date = "2012-12-09 14:18";
   
   echo "Deutsch: " . convertDateTime($date, "de") . "<br>";
   
   echo "Englisch: " . convertDateTime($date, "en") . "<br>";
   
?>

Bisschen umgeschrieben und es funktioniert, Danke!
 
Hilfe, Kinder, bitte!

Warum spricht niemand von der DateTime-Klasse?

PHP:
date_default_timezone_set('Europe/Brussels');
class MyDateTime extends DateTime {
	const LOCALE_GERMAN_DATE_FULL_TIME = 'd.m.Y H:i:s';
}

$Date = new DateTime('2012-12-09 14:18');
echo $Date->format(MyDateTime::LOCALE_GERMAN_DATE_FULL_TIME);
 
Hilfe, Kinder, bitte!

Warum spricht niemand von der DateTime-Klasse?

PHP:
date_default_timezone_set('Europe/Brussels');
class MyDateTime extends DateTime {
    const LOCALE_GERMAN_DATE_FULL_TIME = 'd.m.Y H:i:s';
}

$Date = new DateTime('2012-12-09 14:18');
echo $Date->format(MyDateTime::LOCALE_GERMAN_DATE_FULL_TIME);

Ich versteh das nicht ganz? Wieso ist das zb besser als das ?


PHP:
<?php

   function convertDateTime($date, $lang="de")
   {
      $result = $date;
      
      switch ($lang)
      {
          case "de": $result = date ("d.m.Y H:i", strtotime($date));
                     break;
          case "en": $result = date ("Y-m-d H:i", strtotime($date));
                     break;
      }
      
      return $result;
   }
   
   $date = "2012-12-09 14:18";
   
   echo "Deutsch: " . convertDateTime($date, "de") . "<br>";
   
   echo "Englisch: " . convertDateTime($date, "en") . "<br>";
   
?>
 
Weil du mit DateTime-Objekten mehr anstellen kannst als mit prozeduralem Kram.
Du kannst mit den Daten viel einfacher jonglieren. Du kannst sie vergleichen, mit Zeitzonen hantieren, sie manipulieren usw.
 
Du kannst im Übrigen auch so arbeiten, statt die Zeitzone global einzustellen:

PHP:
new DateTime("2012-12-09 14:18", new DateTimeZone('Europe/Brussels'));
 
Zurück
Oben