Для тех, кто какое-то время не посещал уроки, 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 и не видя способа получить смесь обоих. Есть ли лучшее решение, чем разбор строк?
Вы всегда можете отформатировать месяцы длиной более 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.
Других решений пока нет …