代码之家  ›  专栏  ›  技术社区  ›  meder omuraliev

Zend_Date的国际化日期格式(日语)

  •  0
  • meder omuraliev  · 技术社区  · 15 年前

    免责声明:您可能需要安装 支持的字体 日本人如果你看到混乱 字符。

    我想复制我到目前为止一直在做的事情 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 dates不会有那些年/月/日之后的字母,但它只适用于日语和其他语言,在这些语言中它更为常见,或者如果我误解了它并不是很常见,请通知我。

    提前谢谢。

    1 回复  |  直到 13 年前
        1
  •  0
  •   meder omuraliev    15 年前

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

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

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

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