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

umwandlung eines date feldes

win2k

Neues Mitglied
hi leute wie kann ich ein array was mir ein deutsches datum liefert umwandeln in die amerikanische schreibweise?

Code:
  $zeitraumvon = $param['von'];

da steht jetzt 01.01.2009 drin würde aber gerne in 2009-01-01 das stehen haben.

danke für eure hilfe
 
hmm der komplette string müsste ja umgedreht werden .. gibts nicht eine funktion die das direkt umwandelt in us schreibweise?

$zeitraumvon = 01.01.2008

wie wandel ich jetzt diese variable in 2008-01-01 um hmm
 
Zuletzt bearbeitet:
hmm der komplette string müsste ja umgedreht werden .. gibts nicht eine funktion die das direkt umwandelt in us schreibweise?

Das nenn ich mal Faulheit :D


Und wegen deinem problem an sich wenn du es lernen willst.
Schau dir explode mal an. Wenn du dich mit Arrays auskennst sollte das kein problem sein.


Aber da ich nicht so bin gebe ich dir eine Funktion aus meiner Kalender-Klasse :D
PHP:
function germanDateTimeToMysqlDateTime( $date, $time = "" ) {

    if( $time == "" && preg_match('/^(31|30|[012]\d|\d)[.](0\d|1[012]|\d)[.](\d{4}|\d\d) ([01]?\d|2[0-3]):([0-5]?\d)([:]([0-5]?\d))?$/',$date) ) {
      $array = explode(" ",$date);
      $date = explode(".",$array[0]);
      $realDate = $date[2]."-".$date[1]."-".$date[0];
      if( $this->withTime ) {
        $realDate .= " ".$array[1];
      }
      
      return $realDate;
    } else
    if( $time != "" && preg_match('/^(31|30|[012]\d|\d)[.](0\d|1[012]|\d)[.](\d{4}|\d\d)$/',$date) && preg_match('/^[0-2][0-9]:[0-5][0-9]$/',$time) ) {
      $array = explode(".",$date);
      return $array[2].'-'.$array[1].'-'.$array[0]." ".$time;
    } else
    if( $time == "" && preg_match('/^(31|30|[012]\d|\d)[.](0\d|1[012]|\d)[.](\d{4}|\d\d)$/',$date) ) {
      $array = explode(".",$date);
      return $array[2].'-'.$array[1].'-'.$array[0];
    } else {
    
      return false;
    }
  }
 
hab es nun mit str_replace programmiert :D
Code:
$zeitraumbis = substr($zeitraumbis,6,4)."-".substr($zeitraumbis, 3,2)."-".substr($zeitraumbis,0,2);

geht etwas schneller als mit explode hehe^^
 
Die Funktion die ich dir oben gegeben habe unterstützt mehrere Formate. Wenn dein Format falsch eingegeben wurde kriegst du irgend was lustiges ausgegeben ;)
Bei Explode würde man wenigstens noch die Möglichkeit lassen, dass man auch 09 anstatt 2009 eingeben kann. Oder 1.1.09 anstatt 01.01.2009 :)
Mit Explode gehts übrigens auch schnell. 2 zeilen
PHP:
$exploded = explode(".",$zeitraumbis);
$zeitraumbis = $exploded[2]."-".$exploded[1]."-".$exploded[0];
Was war daran schneller als an substr? :-P
 
Zurück
Oben