小编典典

在 PHP 中将数字转换为月份名称

all

我有这个 PHP 代码:

$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));

echo $monthName;

但它正在返回December而不是August.

$result["month"]等于 8,所以sprintf函数是添加 a0来制作它08


阅读 43

收藏
2022-08-17

共1个答案

小编典典

推荐的方法:

如今,您真的应该将 DateTime 对象用于任何日期/时间数学。这要求您的 PHP 版本 >=
5.2。如Glavi膰的答案所示,您可以使用以下内容:

$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March

!格式化字符用于将所有内容重置为Unix
epoch。格式字符是月份的m数字表示,带有前导零。

替代解决方案:

如果您使用的是较旧的 PHP
版本并且目前无法升级,您可以使用此解决方案。函数的第二个参数date()接受一个时间戳,您可以使用它mktime()来创建一个,如下所示:

$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March

如果您想要 3 个字母的月份名称Mar,请更改FM. 可以在PHP
手册文档
中找到所有可用格式选项的列表。

2022-08-17