有没有办法通过给出一个整数值PHP获得月份名称

时间:2012-03-15 07:24:05

标签: php

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

我想做

$month_name = get_month_name(1);

echo $month_name ; //echo january

提前致谢

7 个答案:

答案 0 :(得分:20)

echo date('F', strtotime("2012-$int-01"));

答案 1 :(得分:5)

另一种内置方式是

$monthInt = 3;
$monthName = DateTime::createFromFormat('m', $monthInt)->format('F');

如果PHP有一个内置的方法来获取日期名称而不创建日期对象,我会很高兴。

答案 2 :(得分:4)

使用此代码通过给出整数值PHP

来获取月份名称
  <?php
  function get_month_name($inp)
  {
  return date("F", strtotime(date("d-$inp-y")));
  }
  $month_name = get_month_name("1");
  echo $month_name;
  ?>

答案 3 :(得分:2)

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];
}

答案 4 :(得分:1)

$month  = 1; //month in numeric
echo date('F', mktime(0, 0, 0, $month, 10)); //print January 

答案 5 :(得分:0)

您可以通过将月份数乘以一个月中的平均秒数(2628000)并取走15天来构建Unix时间(1970年),因此它总是在月中的某个位置。所以这很好用,避免了不必要的开销:

List<FilesData> filesList;
for (int i = 0; i < dataGridName.SelectedItems.Count; i++)
{
    filesList.Add((FilesData)dataGridName.SelectedItems[i]);
}

实际日期(如果你用'F'代替'F')从1970年1月16日到1970年12月16日不等,$ i从1到12.你可以做类似的技巧来获得日名(1 - 7给出周一 - 周日):

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

答案 6 :(得分:0)

使用函数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