# Vorhandenes englisches Datum ins deutsche umwandeln.



## SprYnit (5. Oktober 2007)

Ich bin dabei, einen Turnierkalender von Myleague ( http://www4.igl.net/cgi-bin/tourney/...ath=pooldreams ) der komplett auf Englisch ist, so umzuschreiben, dass ich Ihn komplett auf deutsch habe.
Soweit nicht das Problem. Siehe hier: Turnierkalender

Nun ist meine Frage, wie ich das oben bereits vorhandene, englische Datum ins deutsche umgeformt bekomme?

Standard: "Thursday, October 4, 2007"

Und ich hätte es gerne so:

4. Oktober 2007
oder
Donnerstag, der 4. Oktober 2007


Gibt es eine Möglichkeit, dies so zu machen?


----------



## HuRaHoRRe (5. Oktober 2007)

http://ch2.php.net/manual/de/function.setlocale.php

Ob diese Funkion unterstützt wird hängt meistens aber sehr stark vom Server Anbieter ab.
Ansonsten würde ich jetzt spontan das  Datum mit substr  teilen und dann mit if diese zu ändern z.B


```
if($month == "January")
{
 $month = "Januar";
}
```

Ist halt ein bisschen umständlich, sollte allerdings funktioieren...

Wenn es noch bessere Lösungen gibt.... her damit! ^^


----------



## X-Color (5. Oktober 2007)

http://de2.php.net/explode kann dir weiterhelfen. Diese Funktion teilt einen String an einem Zeichen und setzt diesen in ein Array. An deiner Stelle würde sich das Komma eignen...

```
explode(",", "Thursday, October 4, 2007")
#ergebnis
Array {
 0 => Thursday
 1 => October 4
 2 => 2007
}
```

Und dazu noch Horre's lösung dir genauer anschauen


----------



## HuRaHoRRe (5. Oktober 2007)

Ok ich seh grad das meine Lösung mit den ausgeschriebenen Monaten nicht funkionieren wird...

Bei meiner Lösung müsstest du das ganze z.B in dieser Form haben 11.03.2007 

Aber das von X-Color in verbindung mit dem if ist wohl die beste Lösung.


----------



## bomberman (5. Oktober 2007)

Wie wird das Datum denn im Code ausgegeben?
Wenn strftime dann sollte die Umstellung von Locale helfen.

Ansonsten versuchen den String mit http://de2.php.net/manual/de/function.strtotime.php zurück zur Timestamp und dann mit strftime oder so neu ausgeben lassen.


----------



## splasch (5. Oktober 2007)

Am einfachsten geht das wenn du dir dazu eine funktion schreibs.

Ich hab dir mal eine erstellt.


```
function DatumsWandler($Datum) // von Deutsch auf Englisch Wandeln  { 
      if(strlen($Datum)==10)
      {
         $GewandeltesDatum = substr($Datum, 6, 4);
         $GewandeltesDatum .= "-";
         $GewandeltesDatum .= substr($Datum, 3, 2);
         $GewandeltesDatum .= "-";
         $GewandeltesDatum .= substr($Datum, 0, 2);
         return $GewandeltesDatum;
     }
    };

function Wandlung($Datuma) // von Englisch wieder ins Deutsche Format
  { 
      if(strlen($Datuma)==10)
      {
         $GewandeltesDatum = substr($Datuma, 8, 2);
         $GewandeltesDatum .= ".";
         $GewandeltesDatum .= substr($Datuma, 5, 2);
         $GewandeltesDatum .= ".";
         $GewandeltesDatum .= substr($Datuma, 0, 4);
         return $GewandeltesDatum;
     }
    };
```

Mfg Splasch


----------



## Gumbo (5. Oktober 2007)

Nimm wie bereits von Bomberman die strtotime()-Funktion. Diese versteht eine Vielzahl von Eingabeformate und ist wirklich am einfachsten einzusetzen.


----------



## bomberman (5. Oktober 2007)

Weil heute Freitag ist, kriegste mal was geschenkt.


```
<?php
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); //Umgebung auf Deutsch setzen
$string = "Thursday, October 4, 2007";
$timestamp = strtotime($string); // String zu Timestamp wandeln
echo strftime("%A, der %d. %B %Y",$timestamp); //Gibt "Donnerstag, der 04. Oktober 2007" aus
echo strftime("%d. %B %Y",$timestamp); //Gibt "04. Oktober 2007" aus
?>
```


----------



## SprYnit (5. Oktober 2007)

Danke erstmal für Eure Antworten.

Garnichts von alledem funktioniert.
Entweder verstehe ich es nicht oder es liegt vielleicht daran, dass das englishe Datum bei mir, schon vorgegeben ist und sich Tag für Tag aktualisiert, wie der ganze Kalender.

Vielelicht hilft das Euch ja weiter beim coden.


----------

