Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这种格式的日文日期_Php_Date_Unicode_Internationalization - Fatal编程技术网

Php 这种格式的日文日期

Php 这种格式的日文日期,php,date,unicode,internationalization,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') . '

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

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();

任何改进都将不胜感激。谢谢。

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

function date_japan() {
  echo date('Y') . '年 ' . date('m') . '月 ' . date('d') . '日';
}
使用,您可以格式化任何(受支持的)语言

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

这样,当您将来需要添加更多语言支持时,您就不会担心了。您的代码将不受日语的特定处理。

以下是我使用的…摘自Cameron的代码;-)


这篇文章已经很老了,但如果有人还在寻找答案,这篇文章对我很有用:

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

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

那到底是什么,你试过吗?年 -> 意思是一年。月 -> 意思是月。日-> 意思是白天。代码运行得很好。错过了这一天吗?(thu)我猜这意味着我们必须有一个日文的数组,然后根据日期显示$dys=数组(“日","月","火","水","木","金","土");$dy=日期(“w”);$dy=数组(“日","月","火","水","木","金","土“;$dyj=$dys[$dy];有没有更简单的方法将其添加到代码中?这三种方法可以组合为
date('Y')年M月D日')
$days = array("日","月","火","水","木","金","土");
$date = @date('Y年 m月 d日 (').($dys[@date("w")]).('曜) ').@date('H:i');
$date_japan = date('Y年m月d日', date("w"));
setlocale(LC_ALL, "ja_JP.utf8"); 
$date_format = "%Y年%B%e日(%a)";                  

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