25 Stimmen

PHP date() in Fremdsprachen - z.B. Mar 25 Aoû 09

Ich habe ein Skript, das Datumsdaten für ein internationales Publikum anzeigen muss - z. B.

"eingereicht Di 25 Aug 09"

Gibt es einen einfacheren/saubereren Weg, dies in das französische (usw.) Äquivalent "Mar 25 Aoû 09" umzuwandeln als:

Einstellung einer Konstante LANG und eine $LANGUAGES Array von Include-Dateien & :

if(LANG != 'EN')
{
include $LANGUAGES['LANG'];
}

& dann die enthaltene Datei die Tage und Monate zuordnet und für das entsprechende Gebietsschema ersetzt?

0 Stimmen

56voto

Jakub Punkte 20232

Ich denke, man kommt nicht umhin, dies zu tun, ohne LOCALE einzustellen:

<?php
setlocale(LC_ALL, 'fr_FR');

echo strftime("%A %e %B %Y");
?> 

Einige Details zu strftime: http://us2.php.net/manual/en/function.strftime.php

6voto

Samir Talwar Punkte 13982

Nach Angaben der date Seite des Handbuchs der Funktion, sollten Sie setlocale . Methoden wie strftime wird dann das angegebene Gebietsschema verwendet. date aus irgendeinem Grund jedoch nicht.

4voto

Artur Babyuk Punkte 248

Ich denke, dass die beste Art und Weise, dies zu tun strftime y setlocale Funktionen. Es wird jedoch nicht funktionieren, wenn auf Ihrem Server kein erforderliches Gebietsschema installiert ist (in aktuellen Fragen ist es fr_FR ).

Der folgende Code löst eine Ausnahme aus, wenn die Änderung des Gebietsschemas nicht erfolgreich durchgeführt werden kann

<?php

$result = setlocale(LC_ALL, 'fr_FR');

if($result === false){
    throw new \RuntimeException(
        'Got error changing locale, check if locale is installed on the system'
    );
}

$dayOfMonth = '%e';
//if it is Windows we will use %#d as %e is not supported
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
   $dayOfMonth = '%#d';
}

//Mar 25 Aoû 09 - month shortname, day of month, day shortname, year last two digits
echo strftime("%b $dayOfMonth %a %y");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X