Подтвердить что ты не робот

Как получить имя месяца из числа в PHP?

У меня есть переменная, содержащая номер месяца. Как я могу получить название месяца из этого значения?

Я знаю, что могу определить массив для $month_num => $month_name, но я хочу знать, есть ли функция времени в PHP, которая может это сделать, без необходимости в массиве?

4b9b3361

Ответ 1

date("F",mktime(0,0,0,$monthnumber,1,2011));

Ответ 2

Вы можете получить только текстовый месяц отметки времени Unix с форматом F date() символ, и вы можете преобразовать почти любой формат даты в отметку времени Unix с strtotime(), поэтому выберите любой год и день с 1 по 28 (поэтому он присутствует во всех 12 месяцах) и делают:

$written_month = date("F", strtotime("2001-$number_month-1"));

// Example - Note: The year and day are immaterial:
// 'April' == date("F", strtotime("2001-4-1"));

Рабочий пример

Хорошая вещь об использовании strtotime() заключается в том, что она очень гибкая. Итак, скажем, вы хотите, чтобы массив текстовых имен месяцев начинался один месяц с момента запуска script;

<?php
for ($number = 1; $number < 13; ++$number) {

    // strtotime() understands the format "+x months"
    $array[] = date("F", strtotime("+$number months"));
}
?>

Рабочий пример

Ответ 3

Несколько более короткая версия принятого ответа:

date('F', strtotime("2000-$monthnumber-01"));
  • F означает "имя месяца", в таблице date.

  • 2000 - это только наполнитель для года, а 01 - наполнитель для дня; поскольку нас не беспокоит ничто иное, как название месяца.

Здесь демо на ideone.

Ответ 4

Вы также можете использовать:

jdmonthname(gregoriantojd($monthnumber, 1, 1), CAL_MONTH_GREGORIAN_LONG)

Это просто другой способ. Я ничего не знаю об эффективности этого по сравнению с ответом @Dreaded semicolon.

Здесь демо на ideone.

Для справки:

  • jdmonthame возвращает юлианское имя месяца календаря.

  • gregoriantojd преобразует григорианскую (в настоящее время используемую) дату календаря в Джулиан (часть 1, 1 обозначает день и год).

Ответ 5

используйте функцию mktime, которая принимает элементы даты как параметры.

<?php
 $month_number= 3;
 $month_name = date("F", mktime(0, 0, 0, $month_number, 10));
 echo $month_name; 
?>

Вывод: марта