【问题标题】:php IntlDateFormatter::formatObject, renders incorrect monthsphp IntlDateFormatter::formatObject,呈现不正确的月份
【发布时间】:2015-11-26 03:03:05
【问题描述】:

由于某种原因,我无法使日期格式化程序工作。

这是我的功能:

  function renderDate($format, $date)
  {
      $cal = IntlCalendar::fromDateTime($date);
      return IntlDateFormatter::formatObject($cal, $format);
  }

代码如下:

      for ($i = 1; $i <= 12; $i++) {
          echo renderDate("MMMM", date('M', mktime(0, 0, 0, $i))) . "<br>";
      }

我最终得到:

January
March
March
May
May
July
July
August
October
October
December
December

这是在使用 WAMP 5.5.12 的 Windows 10 上 默认语言环境设置为 en_Ca,时区也是正确的 America/Toronto

【问题讨论】:

  • 因此,所有正在回显的月份都是 31 天的月份。那些被跳过的是那些少的。 ...嗯。
  • 我们每个月底都会收到这个问题...但是二月

标签: php datetime intl


【解决方案1】:

你需要把 day 放到 mktime 函数中:

mktime(0, 0, 0, $i, 1)

【讨论】:

    猜你喜欢
    • 2012-12-09
    • 2016-03-21
    • 2020-09-22
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2013-11-19
    相关资源
    最近更新 更多