MLA风格月份缩写与PHP日期格式?

时间:2014-12-11 19:31:59

标签: php date-formatting

对于那些暂时没有上过课程的人来说,MLA是现代语言风格,月份缩写为

  • 1月 - 1月。
  • 2月 - 2月。
  • 3月 - 3月。
  • 四月 - 四月。
  • 五月 - 五月
  • 六月 - 六月
  • 7月 - 7月
  • 8月 - 8月。
  • 九月 - 九月。
  • 10月 - 10月。
  • 十一月至十一月。
  • 12月 - 12月。

使用PHP,它很容易得到缩写

$date = DateTime::createFromFormat('Ymd', $unformatted_date_string);
// abbreviated
echo $date->format('M d, Y');
// not abbreviated
echo $date->format('m d, Y');

但看了http://php.net/manual/en/datetime.formats.date.php而没有看到两种方式混合的方法。有没有比字符串解析更好的解决方案?

1 个答案:

答案 0 :(得分:0)

您可以随时格式化长度超过4个字符的月份。这似乎就是你真正想做的事情。

// load array with all months for example
for ($x = 1; $x <= 12; $x++) {
    $dates[] = new DateTime('2016-' . $x . '-1');
}

// length is > 4
// if: echo abbreviated month
// else: echo unformatted month
foreach($dates as $date) {
    if (strlen($date->format('F')) > 4) {
        echo $date->format('M') . ".";
    } else {
        echo $date->format('F');
    }

    echo "\r\n";
}

结果: Jan. Feb. Mar. Apr. May June July Aug. Sep. Oct. Nov. Dec.

code on php fiddle