Аббревиатура месяца в стиле MLA с форматом даты PHP?

Для тех, кто какое-то время не посещал уроки, MLA — это современный языковой стиль, а месяцы сокращаются примерно так

  • Январь — январь
  • Февраль — февраль
  • Март — март
  • Апрель — апрель
  • Май — май
  • Июнь — июнь
  • Июль — июль
  • Август — август
  • Сентябрь — сентябрь
  • Октябрь — октябрь
  • Ноябрь — ноябрь
  • Декабрь — декабрь

С 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 и не видя способа получить смесь обоих. Есть ли лучшее решение, чем разбор строк?

3

Решение

Вы всегда можете отформатировать месяцы длиной более 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.

код на скрипте php

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector