Mit IntlDateFormatter können formatiert werden Sie (na ja, nicht unterstützt) Sprachen.
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
exit ('IntlDateFormatter is available on PHP 5.3.0 or later.');
}
if (!class_exists('IntlDateFormatter')) {
exit ('You need to install php_intl extension.');
}
$longFormatter = new IntlDateFormatter(
'ja_JP',
IntlDateFormatter::LONG,
IntlDateFormatter::NONE
);
$weekdayFormatter = new IntlDateFormatter(
'ja_JP',
IntlDateFormatter::NONE,
IntlDateFormatter::NONE,
date_default_timezone_get(),
IntlDateFormatter::GREGORIAN,
'EEEEE' // weekday in one letter
);
$datetime = new DateTime("2010-02-18");
echo $longFormatter->format($datetime)
. '(' . $weekdayFormatter->format($datetime) . ")\n";
Dies sollte Sie geben,
2010 年 2 月 18 日 (木)
und Sie auch eine andere Sprache mit verschiedenen locale Namen bekommen.
Wenn Sie sind in Ordnung mit dem Format
2010 年 2 月 18 日 木 曜 日
die PHP (und ICU-Bibliothek PHP ruft intern) das richtige Format für die vollständige japanische Datum denkt, die Code wäre einfacher. So,
$fullFormatter = new IntlDateFormatter(
'ja_JP',
IntlDateFormatter::FULL,
IntlDateFormatter::NONE
);
$datetime = new DateTime("2010-02-18");
echo $fullFormatter->format($datetime) . "\n";
Dann werden Sie sich nie sorgen, wenn Sie in Zukunft weitere Sprachen Unterstützung hinzufügen müssen. Ihr Code ist frei von Japanisch-spezifischer Handhabung.
, was das eigentlich ist, haben Sie es selbst versuchen? – Sarfraz
> -> bedeutet Jahr.月 -> bedeutet Monat.日 -> bedeutet Tag. – Yada
Der Code funktioniert ziemlich gut. Fehlt der Tag? (thu) Ich vermute, das bedeutet, dass wir eine Art Array mit allen Tagen auf Japanisch haben müssen, die dann basierend auf dem Tag gezeigt werden? $ dys = array ("日", "月", "火", "水", "木", "金", "土"); – Cameron