【问题标题】:is there a way to get month name by giving an integer value PHP有没有办法通过给出一个整数值 PHP 来获取月份名称
【发布时间】:2012-03-15 07:24:05
【问题描述】:

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

我想做的事

$month_name = get_month_name(1);

echo $month_name ; //echo january

提前致谢

【问题讨论】:

    标签: php


    【解决方案1】:
    echo date('F', strtotime("2012-$int-01"));
    

    【讨论】:

    • 简单易实现!
    【解决方案2】:

    另一种内置方式是

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

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

    【讨论】:

      【解决方案3】:

      使用此代码通过给出整数值 PHP 来获取月份名称

        <?php
        function get_month_name($inp)
        {
        return date("F", strtotime(date("d-$inp-y")));
        }
        $month_name = get_month_name("1");
        echo $month_name;
        ?>
      

      【讨论】:

        【解决方案4】:
        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];
        }
        

        【讨论】:

        • 我可以做到这一点,我问,是否有任何 PHP 内置函数可以做到这一点
        【解决方案5】:
        $month  = 1; //month in numeric
        echo date('F', mktime(0, 0, 0, $month, 10)); //print January 
        

        【讨论】:

          【解决方案6】:

          您可以通过将月份数乘以一个月中的平均秒数 (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);
          }
          

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 2013-08-02
              • 1970-01-01
              • 2020-03-03
              • 2023-01-11
              • 1970-01-01
              • 1970-01-01
              • 2017-07-03
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多