Datum und Uhrzeit auf deutsch
Ronald Beaugeois
- php
0 Clemens0 andreas0 Ron0 Henryk Plötz0 Ron
Hallo Forumsuser,
hab es nun geschafft das aktuelle Datum per php auf meine Seite zu integrieren.
<?php setlocale(LC_TIME, 'de_DE'); echo strftime('%A, %d. %B %Y'); ?>
leider steht es da auf englisch, und wir hätten es gerne in deutsch.
Sunday, 10. March 2002
gefunden hab ich dazu folgendes:
Linux: setlocale(LC_TIME, 'de_DE');
Win: setlocale(LC_TIME, 'German_Germany');
ich denke es geht darum mit was unser Provider arbeitet.
habe beides ausprobiert, doch es wird immer in englisch angezeigt.
Unsere Seite liegt bei Strato.
weiss vielleicht jemand woran das liegt?
würd mich über antworten freuen
gruß ...ron
Hi Ron!
Das sollte richtig sein:
setlocale ("LC_TIME","ge");
Clemens
Hi Ron!
Das sollte richtig sein:
setlocale ("LC_TIME","ge");
Clemens
<?php setlocale ("LC_TIME","ge"); echo strftime('%A, %d. %B %Y'); ?>
leider ändert sich daran auch nichts. bleibt immer noch englisch.
Hi!
leider ändert sich daran auch nichts. bleibt immer noch englisch.
Wäre mir neu, wenn das so einfach in deutsch ginge! In englisch jedenfalls geht es auch mit Date, siehe:
date
(PHP 3, PHP 4 >= 4.0.0)
date -- Formatiert ein(e) angegebene(s) Zeit/Datum
Beschreibung:
string date (string format [, int timestamp])
Gibt einen formatierten String anhand eines vorzugebenden Musters zurück. Dabei wird entweder der angegebene timestamp oder die gegenwärtige lokale Zeit berücksichtigt, wenn kein timestamp gegeben ist.
Die folgenden Platzhalter werden zur Formatierung benutzt:
a - "am" oder "pm"
A - "AM" oder "PM"
B - Swatch-Internet-Zeit
d - Tag des Monats, 2-stellig mit führender NULL: "01" bis "31"
D - Tag der Woche als 3 Buchstaben, z.B. "Fri"
F - Monat als ganzes Wort, z.B "January"
g - Stunde im 12-Stunden-Format ohne führende NULL: "1" bis "12"
G - Stunde im 24-Stunden-Format ohne führende NULL: "0" bis "23"
h - Stunde im 12-Stunden-Format: "01" bis "12"
H - Stunde im 24-Stunden-Format: "00" bis "23"
i - Minuten: "00" bis "59"
I (großes 'i') - "1" bei Sommerzeit, sonst "0"
j - Tag des Monats ohne führende NULL: "1" bis "31"
l - (kleines 'L') ausgeschriebener Tag der Woche, z.B. "Friday"
L - boolscher Wert für Schaltjahre: "0" oder "1"
m - Monat: "01" to "12"
n - Monat ohne führende NULL: "1" bis "12"
M - Monat als 3 Buchstaben, z.B. "Jan"
O - Zeitdifferenz zur Greenwich Zeit in Stunden (z.B. +0200)
r - Nach RFC 822 formattiertes Datum; z.B. "Sun, 7 Oct 2001 14:56:02 +0200" (seit PHP 4.0.4)
s - Sekunden: "00" bis "59"
S - Anhang der englischen Aufzählung, 2 Buchstaben, z.B. "th" [bei 4 für fourth], "nd" [bei 2 für second]
t - Anzahl der Tage des angegebenen Monats: "28" bis "31"
T - Zeitzoneneinstellung des Rechners, z.B. "MDT"
U - Sekunden seit Beginn der UNIX-Epoche (1.1.1970)
w - Wochentag beginnend mit "0" (Sonntag) bis "6" (Samstag)
Y - Jahr als vierstellige Zahl, z.B. "1999"
y - Jahr als zweistellige Zahl, z.B. "99"
z - Tag des Jahres: "0" bis "365"
Z - Offset der Zeitzone gegen GTM ("-43200" bis "43200") in Minuten
Kannst Du alles mit Beispielen prima nachlesen unter:
http://www.dynamicwebpages.de/php/function.date.php
Mit deutschem Text geht das meines Erachtens nur mit einem Array, sowas wie:
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag",
"Freitag","Samstag");
$tag = date("w");
nachlesen kannst Du das unter:
http://www.schattenbaum.net/php/datum2.php
Grüße
Andreas
Moin,
Wäre mir neu, wenn das so einfach in deutsch ginge! In englisch jedenfalls geht es auch mit Date, siehe:
[stupid quote gesnippt]
Man lernt halt immer wieder dazu. Wichtig ist der Teil den du nicht mitkopiert hast:
Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten sie die Funktionen setlocale() und strftime() nutzen.
--
Henryk Plötz
Grüße aus Berlin
Moin!
[stupid quote gesnippt]
Man lernt halt immer wieder dazu. Wichtig ist der Teil den du nicht mitkopiert hast:
Sorry, nächstes mal schreibe ich das mal eben aus dem Kopf runter!
Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten sie die Funktionen setlocale() und strftime() nutzen.
Warum gibt dann folgendes bei mir "sunday"???
<?
setlocale ("LC_TIME", "de_DE");
print (strftime ("%A.\n"));
?>
Mit der Array-Methode geht es jedenfalls prima!
Grüße
Andreas
Moin,
Wäre mir neu, wenn das so einfach in deutsch ginge! In englisch jedenfalls geht es auch mit Date, siehe:
[stupid quote gesnippt]
Man lernt halt immer wieder dazu. Wichtig ist der Teil den du nicht mitkopiert hast:
Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten sie die Funktionen setlocale() und strftime() nutzen.
--
Henryk Plötz
Grüße aus Berlin
ich dachte ja genau das mit meiner codezeile gemacht zu haben.
<?php setlocale ("LC_TIME","ge"); echo strftime('%A, %d. %B %Y'); ?>
aber funktionieren tut es nicht.
egal ob ich
setlocale(LC_TIME, 'de_DE');
setlocale(LC_TIME, 'German_Germany');
setlocale(LC_TIME, 'Ge');
setlocale(LC_TIME, 'De');
eintippe.
komisch,komisch
gruß ron
Hallo Ron!
aber funktionieren tut es nicht.
[...]
setlocale(LC_TIME, 'de_DE');
Wie Henryk schon sagte, der Provider muss die Sprachunterstützung für die jeweilige Landesprache installiert haben, dann funktioniert das auch.
Ansonsten schafft folgender Codeschnipsel Abhilfe:
// Übersetzungsarray Englisch->Deutsch
$trans=array(
"Monday"=>"Montag", "Tuesday"=>"Dienstag", "Wednesday"=>"Mittwoch", "Thursday"=>"Donnerstag", "Friday"=>"Freitag", "Saturday"=>"Sonnabend", "Sunday"=>"Sonntag",
"Mon"=>"Mo", "Tue"=>"Di", "Wed"=>"Mi", "Thu"=>"Do", "Fri"=>"Fr", "Sat"=>"Sa", "Sun"=>"So",
"January"=>"Januar", "February"=>"Februar", "March"=>"März", "April"=>"April", "May"=>"Mai", "June"=>"Juni", "July"=>"Juli", "August"=>"August", "September"=>"September", "October"=>"Oktober", "November"=>"November", "December"=>"Dezember",
"Jan"=>"Jan", "Feb"=>"Feb", "Mar"=>"März", "Apr"=>"Apr", "May"=>"Mai", "Jun"=>"Jun", "Jul"=>"Jul", "Aug"=>"Aug", "Sep"=>"Sep", "Oct"=>"Okt", "Nov"=>"Nov", "Dec"=>"Dez"
);
// englischen String erzeugen:
$dattext=strftime(".....",$timestamp);
^^^^^---Format nach Wunsch
// Erzeugten String übersetzen:
$datumtext= strtr ($dattext,$trans);
Gruss,
Carsten
Dank dir Carsten und allen anderen, hab das jetzt mittlerweile hinbekommen, durch eure hilfe.
habs einfach mit der array methode gemacht...
gruß ron
schade das es nicht zu gehen scheint, obwohl ich auf phpseiten eigentlich genau die lösung des problems gedacht gefunden zu haben.
jedenfalls wurde der eindruck auf mich gemacht. naja funktioniert hat es ja nicht.
aber sehr interessant was du mir da als antworten gegeben hast. auch die links werde ich mir mal anschauen, und die lösung mit array scheint ja auch noch ne möglichkeit.
danke dir, gruß ron
Moin!
mein Tipp wäre:
echo date(d.m.Y);
Grüße
Andreas
Moin!
mein Tipp wäre:
echo date(d.m.Y);
Grüße
Andreas
ist zwar ne alternative, doch hätten wir es gerne mit wörtern, damit es nicht so technisch rüberkommt.
Moin,
echo date(d.m.Y);
Nein, da fehlen die Anführungszeichen.
Ronald: Bei mir läuft
setlocale("LC_TIME", "de_DE.roman8"); echo strftime("%d. %B %Y, %H:%M:%S Uhr"); problemlos. Vielleicht fragst du mal deinen Hoster, evt. haben die die Sprachunterstützung nicht installiert. Ausserdem solltest du den Rückgabewert von setlocale abfragen. Normalerweise gibt es dir die aktuell eingestellte locale zurück, wenn jedoch was falsch läuft (keine Unterstüzung für die angeforderte locale, keine locale-Funktion überhaupt) dann kriegst du false zurück.
Ausserdem kannst du dir die Ausgabe von phpinfo() mal ansehen. Ich bin mir nicht sicher, aber ich vermute mal dass "GNU gettext support" auf enabled stehen sollte damit die ganze Sache funktioniert.
--
Henryk Plötz
Grüße aus Berlin
hi Henryk,
phpinfo() hab ich gemacht, doch konnte ich keine angaben zu GNU finden. mit suchenfunktion durchsucht.
Ausserdem solltest du den Rückgabewert von setlocale abfragen.
wie frage ich das denn ab. bei Javascript ist es ja alert. doch bei PHP weis ich es noch nicht.
hab erst vor zwei stunden mich angefangen mit php zu beschäftigen.
gruß ron
Moin,
wie frage ich das denn ab. bei Javascript ist es ja alert. doch bei PHP weis ich es noch nicht.
hab erst vor zwei stunden mich angefangen mit php zu beschäftigen.
Na ein
if(!setlocale(....)) die("setlocale-Aufruf fehlgeschlagen");
sollte für den Anfang ausreichen.
--
Henryk Plötz
Grüße aus Berlin