I have this PHP code:
$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));
echo $monthName;
But it's returning December
rather than August
.
$result["month"]
is equal to 8, so the sprintf
function is adding a 0
to make it 08
.
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:
The
!
formatting character is used to reset everything to the Unix epoch. Them
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 usemktime()
to create one, like so:If you want the 3-letter month name like
Mar
, changeF
toM
. The list of all available formatting options can be found in the PHP manual documentation.