【问题标题】:how to convert english date format to german date format in php如何在php中将英文日期格式转换为德文日期格式
【发布时间】:2011-11-29 11:19:58
【问题描述】:

嗨,我有这样的日期格式

(英文格式)

 15. July 2011

我想把它转换成这样的德语格式

15. Juli 2011

如何将日期格式从一种语言转换为另一种语言格式?

我的代码是

 $date = '15. July 2011';
 $newLocale = setlocale(LC_TIME, 'de_DE');
 $date = strftime('%d. %B %Y',$date);

但这不是转换我得到July而不是Juli

【问题讨论】:

    标签: php date datetime date-format


    【解决方案1】:

    您可以在调用date 函数之前使用setlocale 函数:

    $newLocale = setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');
    

    编辑:引用strftime docs:

    如果您的系统中安装了相应的语言环境,则此示例将有效。

    【讨论】:

    • strftime 第二个参数应该是时间戳,而不是字符串。
    • 如果您有编码问题:在我们的 CentOS 设置中,编码区域设置必须是 de_DE.UTF8,而不是 de_DE.UTF-8。
    【解决方案2】:

    如果您安装了Internationalization 扩展,则可以使用IntlDateFormatter 类。

    它确实非常强大,并且实际上以您所定位的语言环境的正确格式显示日期和时间。

    例如,德国可能是:

    // create format
    $fmt = datefmt_create("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
    
    // output (using current time)
    echo datefmt_format($fmt , time());
    

    哪些输出:

    Dienstag,2011 年 11 月 29 日

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2014-02-25
      • 2012-06-05
      相关资源
      最近更新 更多