Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中从数字中获取月份名称?_Php_Date_Datetime - Fatal编程技术网

如何在PHP中从数字中获取月份名称?

如何在PHP中从数字中获取月份名称?,php,date,datetime,Php,Date,Datetime,我有一个包含月数的变量。如何从该值中获取月份名称 我知道我可以为$month\u num=>$month\u name定义一个数组,但我想知道PHP中是否有一个时间函数可以做到这一点,而不需要数组?您可以只获得Unix时间戳的文本月份,并带有F格式字符,您可以将几乎任何格式的日期转换为Unix时间戳,因此选择任何年份和日期1到28(因此它在所有12个月内都存在),然后执行以下操作: date("F",mktime(0,0,0,$monthnumber,1,2011)); 使用strotime

我有一个包含月数的变量。如何从该值中获取月份名称


我知道我可以为
$month\u num=>$month\u name
定义一个数组,但我想知道PHP中是否有一个时间函数可以做到这一点,而不需要数组?

您可以只获得Unix时间戳的文本月份,并带有
F
格式字符,您可以将几乎任何格式的日期转换为Unix时间戳,因此选择任何年份和日期1到28(因此它在所有12个月内都存在),然后执行以下操作:

date("F",mktime(0,0,0,$monthnumber,1,2011));

使用
strotime()
的好处在于它非常灵活。假设您想要一个文本月份名称数组,从脚本运行一个月开始

<?php
for ($number = 1; $number < 13; ++$number) {

    // strtotime() understands the format "+x months"
    $array[] = date("F", strtotime("+$number months"));
}
?>

您还可以使用:

jdmonthname(gregoriantojd($monthnumber, 1, 1), CAL_MONTH_GREGORIAN_LONG)
这只是另一种方式。我不知道这和我们的答案相比有什么效率

这是关于ideone的

供参考:

  • 返回儒略历月份名称

  • 将公历(当前使用的)日期转换为朱利安日期(其中
    1,1
    部分表示日期和年份)


    • 接受答案的略短版本是:

      date('F', strtotime("2000-$monthnumber-01"));
      
      • F
        代表“月份名称”,如上表所示

      • 2000
        只是一年的填充物,而
        01
        只是一天的填充物;因为我们只关心月份名称


      这是关于ideone的。

      使用函数mktime,它将日期元素作为参数

      <?php
       $month_number= 3;
       $month_name = date("F", mktime(0, 0, 0, $month_number, 10));
       echo $month_name; 
      ?>
      
      
      
      输出:
      三月

      足够好吗?这是一个很好的主意,虽然结果从下个月开始,这可能不是我们预期的标准(1月、2月等)产出。虽然这是正确的答案,但应该对发生的情况进行解释。请参阅下面的简短方法。
      <?php
       $month_number= 3;
       $month_name = date("F", mktime(0, 0, 0, $month_number, 10));
       echo $month_name; 
      ?>