Convert number to month name in PHP
Just because everyone is using strtotime() and date() functions, I will show DateTime example:
$dt = DateTime::createFromFormat('!m', $result['month']);
echo $dt->format('F');
Use mktime()
:
<?php
$monthNum = 5;
$monthName = date("F", mktime(0, 0, 0, $monthNum, 10));
echo $monthName; // Output: May
?>
See the PHP manual : http://php.net/mktime
The recommended way to do this:
Nowadays, you should really be using DateTime objects for any date/time math. This requires you to have a PHP version >= 5.2. As shown in Glavić's answer, you can use the following:
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March
The !
formatting character is used to reset everything to the Unix epoch. The m
format character is the numeric representation of a month, with leading zeroes.
Alternative solution:
If you're using an older PHP version and can't upgrade at the moment, you could this solution.
The second parameter of date()
function accepts a timestamp, and you could use mktime()
to create one, like so:
$monthNum = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March
If you want the 3-letter month name like Mar
, change F
to M
. The list of all available formatting options can be found in the PHP manual documentation.