【发布时间】:2012-03-15 07:24:05
【问题描述】:
嗨,我正在使用 PHP,我想传递一个整数值 (1-12) 并获取相应的月份名称,PHP 中有没有办法做到这一点,或者我必须自己初始化一个月份名称数组。
我想做的事
$month_name = get_month_name(1);
echo $month_name ; //echo january
提前致谢
【问题讨论】:
标签: php
嗨,我正在使用 PHP,我想传递一个整数值 (1-12) 并获取相应的月份名称,PHP 中有没有办法做到这一点,或者我必须自己初始化一个月份名称数组。
我想做的事
$month_name = get_month_name(1);
echo $month_name ; //echo january
提前致谢
【问题讨论】:
标签: php
echo date('F', strtotime("2012-$int-01"));
【讨论】:
另一种内置方式是
$monthInt = 3;
$monthName = DateTime::createFromFormat('m', $monthInt)->format('F');
如果 PHP 有一个内置的方式来获取日期名称而不创建日期对象,我会很好。
【讨论】:
使用此代码通过给出整数值 PHP 来获取月份名称
<?php
function get_month_name($inp)
{
return date("F", strtotime(date("d-$inp-y")));
}
$month_name = get_month_name("1");
echo $month_name;
?>
【讨论】:
function get_month_name($month)
{
$months = array(
1 => 'January',
2 => 'February',
3 => 'March',
4 => 'April',
5 => 'May',
6 => 'June',
7 => 'July',
8 => 'August',
9 => 'September',
10 => 'October',
11 => 'November',
12 => 'December'
)
return $months[$month];
}
【讨论】:
$month = 1; //month in numeric
echo date('F', mktime(0, 0, 0, $month, 10)); //print January
【讨论】:
您可以通过将月份数乘以一个月中的平均秒数 (2628000) 并减去 15 天来构造一个 Unix 时间(1970 年),因此它总是在月中的某个地方。所以这很好用并且避免了不必要的开销:
function month_name($i) {
return date('F', $i * 2628000 - 1314000);
}
实际日期(如果用 'd FY' 代替 'F')从 1970 年 1 月 16 日到 1970 年 12 月 16 日,$i 从 1 到 12。您可以使用类似的技巧来获取日期名称(使用 1 - 7 给予周一至周日):
function day_name($i) {
return date('l', $i * 86400 + 302400);
}
【讨论】:
使用函数 mktime(),它将日期元素作为参数。
<?php
$month_number= 3;
$month_name = date("F", mktime(0, 0, 0, $month_number, 10));
echo $month_name;
?>
输出: 三月
在函数mktime()中,参数为时、分、秒、月、日、年。
欲了解更多信息,请查看http://php.net/manual/en/function.mktime.php
【讨论】: