我想以这种格式显示日语日期:
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();
任何改进都将非常感激。感谢。
答案 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