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

标签 php date

我有这个 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ć's answer ,您可以使用以下内容:

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

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

替代解决方案:

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

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

如果您想要像 Mar 这样的 3 字母月份名称,请将 F 更改为 M。所有可用格式选项的列表可以在 the PHP manual documentation 中找到。 .

关于php - 在 PHP 中将数字转换为月份名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467669/

相关文章:

php - 如何搜索对象以查看它们是否包含特定值?

php - Laravel 使用管道从 Redis 集访问数据

MySql 日期/时间值问题

php - 在 php 循环中将数据写入 redis 时发生了有趣的事情

php - WordPress插件开发中如何手动获取帖子缩略图URL?

php - 输出一个php多维数组到html表格

c# - DateTime.ParseExact 不适用于 "yyyy-MM-dd HH:mm:ss"

SQL 日期的 Java 日期模式 (ISO 9075)

date - 将 FM (FileMaker) 时间戳转换为日期时间

java - 将日期时间解析为日历或 simpleDateFormat 的结果不同