有没有一种方法可以通过给PHP一个整数值来获得月份名称


is there a way to get month name by giving an integer value PHP

hi我正在使用PHP,我想传递一个整数值(1-12)并获得相应的月份名称,在PHP中有没有办法做到这一点,或者我必须通过初始化一个月份名称数组来自己做这件事。

我想做

$month_name = get_month_name(1);
echo $month_name ; //echo january

提前感谢

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)来构造Unix时间(1970年),并减去15天,使其始终位于月中的某个位置。因此,这可以很好地工作,并避免不必要的开销:

function month_name($i) {
    return date('F', $i * 2628000 - 1314000);
}

实际日期(如果用"d F Y"代替"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