在 PHP 中将数字转换为月份名称
我有这个PHP代码:
$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));
echo $monthName;
但它正在返回而不是.December
August
$result["month"]
等于 8,因此该函数正在添加一个来使其 。sprintf
0
08
我有这个PHP代码:
$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));
echo $monthName;
但它正在返回而不是.December
August
$result["month"]
等于 8,因此该函数正在添加一个来使其 。sprintf
0
08
执行此操作的推荐方法:
如今,您应该真正使用DateTime对象进行任何日期/时间数学运算。这要求您拥有 PHP 版本 >= 5.2。如Glavić的答案所示,您可以使用以下内容:
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March
!
格式字符用于将所有内容重置为 Unix 时代。格式字符是月份的数字表示形式,带有前导零。m
替代解决方案:
如果您使用的是较旧的PHP版本,并且目前无法升级,则可以使用此解决方案。date()
函数的第二个参数接受时间戳,您可以使用 mktime()
创建一个时间戳,如下所示:
$monthNum = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March
如果需要 3 个字母的月份名称,如 ,请更改为 。所有可用格式设置选项的列表可以在 PHP 手册文档中找到。Mar
F
M
仅仅因为每个人都在使用strtotime()和date()函数,我将展示DateTime示例:
$dt = DateTime::createFromFormat('!m', $result['month']);
echo $dt->format('F');