【问题标题】:Name of day/month that's not today in another language in php不是今天的日/月名称在 php 中的另一种语言
【发布时间】:2013-08-29 11:44:23
【问题描述】:

我试图用英语以外的另一种语言在 php 中获取一天的名称。我将语言环境设置更改为setlocale(LC_ALL, 'nl_NL');(返回true),但日期仍以英文显示。然后我发现你应该使用strftime() 让它工作,但这只是以设置的语言返回当前时间,我试图在预定义的天数中循环,所以输出将是

Vrijdag 8 月 30 日

扎特达格 8 月 31 日

Zondag 9 月 1 日

等等

从当前时间戳中减去/添加天也不是我想做的选择。

【问题讨论】:

  • 小心LC_ALL,有LC_TIME,这是你真正需要的。那,还有this question has been asked before
  • 试试setlocale(LC_ALL,'dutch'); 它对我有用。但是nl_NL 不起作用

标签: php date strftime setlocale


【解决方案1】:

当您需要根据区域设置操作日期/时间戳时,您应该使用 strftime

还将编码更改为 utf-8

http://php.net/manual/en/function.strftime.php

示例:

<?php
header('Content-Type: text/html; charset=UTF-8');

$myDate = "Feb 21, 2013";

$locale = 'fr_FR.utf8';
setlocale(LC_ALL, $locale);
echo strftime('%d %B %Y', strtotime($myDate));  

$locale = 'en_US.utf8';
setlocale(LC_ALL, $locale);
echo strftime('%d %B %Y', strtotime($myDate));
?>

【讨论】:

    【解决方案2】:

    函数 strftime 接受第二个参数:unix 时间戳:

    http://de1.php.net/manual/en/function.strftime.php

    您可以简单地将日期转换为 unix 时间戳并将它们作为第二个参数传递。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-09
      • 2021-01-11
      • 1970-01-01
      • 2015-05-18
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多