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

Probleme mit der Zeitangabe!

  • Ersteller Ersteller newlinux
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
N

newlinux

Guest
Hallo @ all

Ich lese gerade in einem Buch über PHP5. Dort muss ich bei einer Aufgabe eine Zeitangabe auf deutsch erstellen. Folgenden Code habe ich verwendet:

<html>
<head>
<title>Bob's Auto Parts - Ihre Bestellung</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Ihre Bestellung</h2>

<?php
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge' );
echo '<p>Bestellung ausgeführt am ';
echo strftime("%d %B, %H:%M Uhr");
echo '</p>';
?>
</body>
</html>

Wenn ich mir diese Datei nun ansehe, dann bekomme ich den Monatsnamen nicht auf Deutsch, sondern auf Englisch...

Was habe ich vergessen zu tun?

Vielen Dank für eure Antworten und noch einen schönen Abend wünscht
newlinux
 
hmm... gute frage... habe für meine Testumgebung funpic.de gewählt... sollte schon unterstützt werden, oder?

Welche Tags habe ich vergessen? :oops:
 
da man nciht überall davona usgeben kann das deutsches datum unterstützt wird englisches aber immer sollte man sich sowieso eine funktion bauen die das englische in ein deutsches umwandelt.
 
Du könntest ja auch anders vorgehen
PHP:
<?
$tag = date(l);
switch ($tag) {
case "Monday": $tag = "Montag"; break;
case "Tuesday": $tag = "Dienstag"; break;
//und so weiter bis Sonntag
}
?>
 
Jeff, was ist das denn? Diese Funktion schreit ja schon aua, bzw. es ist nichteinmal eine Funktion.

PHP:
<?php
interface IGermanDate {
  public function __construct($timestamp);
  public function getDay();
  public function getMonth();
  public function getDate();
}
class GermanDate implements IGermanDate {
  var $timestamp = 0;
  public function __construct($timestamp) {
    $this->timestamp = $timestamp;
  }
  public function getDay() {
    switch((int) date("w",$this->timestamp)) {
      case 0: return "Sonntag";
      case 1: return "Montag";
      case 2: return "Dienstag";
      case 3: return "Mittwoch";
      case 4: return "Donnerstag";
      case 5: return "Freitag";
      case 6: return "Samstag";
      default: return false;
    }
  }
  public function getMonth() {
    switch((int) date("m",$this->timestamp)) {
      case 1: return "Januar";
      case 2: return "Februar";
      case 3: return "M&auml;rz";
      case 4: return "April";
      case 5: return "Mai";
      case 6: return "Juni";
      case 7: return "Juli";
      case 8: return "August";
      case 9: return "September";
      case 10: return "Oktober";
      case 11: return "November";
      case 12: return "Dezember";
      default: return false;
    }
  }
  public function getDate() {
    return $this->GetDay()." der ".date("d.",$this->timestamp)." ".$this->GetMonth()." ".date("Y",$this->timestamp);
  }
}
$date = new GermanDate(time());
print $date->GetDay()."<br />";
print $date->GetMonth()."<br />";
print $date->GetDate()."<br />";
?>
 
Zuletzt bearbeitet:
Oder aber so:
PHP:
<?php
  function date_de($pat, $time = time())
  {
    $find = array();
    //Tage voll
    $find[] = "Monday";
    $find[] = "Tuesday";
    $find[] = "Wednesday";
    $find[] = "Thursday";
    $find[] = "Friday";
    $find[] = "Saturday";
    $find[] = "Sunday";
    //Monate voll
    $find[] = "January";
    $find[] = "February";
    $find[] = "March";
    $find[] = "May";
    $find[] = "June";
    $find[] = "July";
    $find[] = "October";
    $find[] = "December";
    //Tage kurz
    $find[] = "Tue";
    $find[] = "Wed";
    $find[] = "Thu";
    $find[] = "Fri";
    $find[] = "Sat";
    $find[] = "Sun";
    //Monate kurz
    $find[] = "Mar";
    $find[] = "May";
    $find[] = "Oct";
    $find[] = "Dec";

    $replace = array();
    //Tage voll
    $replace[] = "Montag";
    $replace[] = "Dienstag";
    $replace[] = "Mittwoch";
    $replace[] = "Donnerstag";
    $replace[] = "Freitag";
    $replace[] = "Samstag";
    $replace[] = "Sonntag";
    //Monate voll
    $replace[] = "Januar";
    $replace[] = "Februar";
    $replace[] = "März";
    $replace[] = "Mai";
    $replace[] = "Juni";
    $replace[] = "Juli";
    $replace[] = "Oktober";
    $replace[] = "Dezember";
    //Tage kurz
    $replace[] = "Di";
    $replace[] = "Mi";
    $replace[] = "Do";
    $replace[] = "Fr";
    $replace[] = "Sa";
    $replace[] = "So";
    //Monate kurz
    $replace[] = "Mär";
    $replace[] = "Mai";
    $replace[] = "Okt";
    $replace[] = "Dez";

    return str_replace( $find, $replace, date($pat, $time) );
  }
?>
Könnt auch ne dumme (weil lange) Alternative sein, aber so gehts :mrgreen:

EDIT:
Oder aber auch Franks Lösung, die genauer anzuschauen ich gerade zu faul bin ;)
 
hehe easy... vielen Dank für eure Antworten... Ich werde zu gegebener Zeit das dann auch alles ausprobieren.

Wünsche ein schönes Wochenende
newlinux
 
@BcF

Ich habs im Grunde nicht anders, nur in eine schöne Klasse gepackt.
Da ich praktisch 3 Sachen habe, Tag, Monat, "langes Datum" hab ich mir gedacht, das sei übersichtlicher. Ich liebe Klassen ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben