这种格式的日语日期

时间:2010-02-18 12:11:41

标签: php date unicode internationalization

我想以这种格式显示日语日期:

2010年2月18日(木)

转换为:

2010年2月18日(星期四)

PHP中的

这是我的代码:

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

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

任何改进都将非常感激。感谢。

5 个答案:

答案 0 :(得分:3)

最简单,最实用的方法可能是围绕日期函数创建一个包装函数:

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

答案 1 :(得分:2)

使用IntlDateFormatter,您可以格式化任何(支持的)语言。

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

这应该给你,

  

2010年2月18日(木)

您还可以使用不同的语言环境名称来获取另一种语言。

如果您对格式

没问题
  

2010年2月18日木曜日

PHP(以及PHP内部调用的ICU库)认为完整日语日期的正确格式,代码会更简单。像这样,

$fullFormatter = new IntlDateFormatter(
    'ja_JP',
    IntlDateFormatter::FULL,
    IntlDateFormatter::NONE
);
$datetime = new DateTime("2010-02-18");
echo $fullFormatter->format($datetime) . "\n";

然后,当您需要在将来添加更多语言支持时,您永远不会担心。您的代码将免于日语特定处理。

答案 2 :(得分:1)

这是我用过的......从Cameron的代码中删除; - )

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

答案 3 :(得分:1)

这篇文章很老了,但是如果有人还在寻找答案,这对我来说效果很好:

setlocale(LC_ALL, "ja_JP.utf8"); 
$date_format = "%Y年%B%e日(%a)";                  

$date_string = strftime($date_format, time())

答案 4 :(得分:0)

localhost