2010-02-18 7 views
7

Je suis désireux afficher la date en japonais dans ce format:japonaise dans ce format

2010 年 2 月 18 日 (木)

qui se traduit par:

18 Février, 2010 (jeu)

en PHP

C'est le code que j'ai:

function date_japan() { 
    $dy = date("w"); 

    $dys = array("日","月","火","水","木","金","土"); 
    $dyj = $dys[$dy]; 
     echo date('Y') . '年 ' . date('m') . '月 ' . date('d') . '日' . '(' . $dyj . ')'; 
    } 
    date_japan(); 

Toutes les améliorations seraient très appréciées. Merci.

Répondre

2

La façon la plus simple et la plus pragmatique est probablement de créer une fonction wrapper autour de la fonction Date:

function date_japan() { 
    echo date('Y') . '年 ' . date('m') . '月 ' . date('d') . '日'; 
} 
+1

ce qui est qu'en réalité, vous avez essayé même pas? – Sarfraz

+1

年 -> signifie l'année.月 -> signifie mois.日 -> signifie jour. – Yada

+1

Le code fonctionne plutôt bien. Manquant le jour cependant? (thu) Je devine que cela signifie que nous devrions avoir une sorte de tableau avec tous les jours en japonais qui sont ensuite affichés en fonction de la journée? $ dys = array ("日", "月", "火", "水", "木", "金", "土"); – Cameron

2

Avec IntlDateFormatter, vous pouvez formater toutes les langues (bien, pris en charge).

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"; 

Cela devrait vous donner,

2010 年 2 月 18 日 (木)

et vous pouvez également obtenir une autre langue avec des noms de paramètres régionaux.

Si vous êtes d'accord avec le format

2010 年 2 月 18 日 木 曜 日

qui PHP (PHP et la bibliothèque ICU appelle en interne) pense que le format approprié pour la date japonaise complète, la le code serait plus simple. Comme ceci, vous ne vous inquiéterez jamais quand vous aurez besoin d'ajouter plus de support de langues à l'avenir. Votre code sera exempt de manipulation spécifique au Japon.

1

ici est ce que je faisais ... Ripped du code de Cameron ;-)

$days = array("日","月","火","水","木","金","土"); 
$date = @date('Y年 m月 d日 (').($dys[@date("w")]).('曜) ')[email protected]('H:i'); 
0
$date_japan = date('Y年m月d日', date("w")); 
+0

S'il vous plaît modifier votre message et expliquer votre réponse. –