0

免责声明:如果您看到乱码,您可能需要安装支持日语的字体/字体。

我正在尝试复制到目前为止我一直在做的事情,setlocale并且strftime

setlocale(LC_ALL, 'ja_JP.utf8');
$time = mktime();
echo strftime('%x', $time), '<br>';

输出:

2010年01月06日

使用 Zend_Date - 但我无法用日文符号为年、月和日重现相同的格式。

尝试#1:

$locale = new Zend_Locale('ja_JP');

$date = new Zend_Date( strtotime('yesterday'), null, $locale);
//echo $date->toString('YYYY abcdefghijklmnopqrstuvwxy M dE');
echo $date->get('YYYY MMM DD');

输出:

2010 1月 004

尝试#2:

echo $date->get(Zend_Date::DATE_FULL);

输出:

2010年1月5日火曜日

我的第一次尝试似乎找不到生成年份和日期符号的工作常数。后者使用标准化格式,但我需要对其进行自定义,因此0前一个月有一个,我想更好地控制。

将来我可能想让它变得灵活,例如,en_US 日期不会在年/月/日之后出现这些字母,但它只适用于日语和其他更常见的语言,或者如果我误解了,这并不常见,请告知我。

提前致谢。

4

1 回答 1

0

似乎我需要的是DATE_LONG常量,它在内部指向“FFFF” - 我正在尝试了解 Date 类如何与 Locale 类对应的内部工作原理,以生成包括符号在内的整个字符串。

更新:我一直试图找到它实际使用日期单位而不是日期格式的位置,找到了我需要的正确数据:

                <dateFormatLength type="long">
                    <dateFormat>
                        <pattern>y年M月d日&lt;/pattern>
                    </dateFormat>
                </dateFormatLength>

所以它解析这个并替换 y、M、d,返回格式化的日期。

于 2010-01-08T17:43:09.453 回答