将月份号码转换为月份名称

时间:2015-10-20 03:56:03

标签: php date

我想将月份号码转换为月份名称。我试过以下代码:

:一种。

$month = 01;
$monthName = date("M", mktime(0, 0, 0, $month);

$month = 01;
$monthName = date("M", mktime(0, 0, 0, $month, 10));

下进行。

$month = 01;
$monthName = date("M", mktime(0, 0, 0, $month, 1, 2015));    

以下是我的问题:

(1)它们是否执行相同的输出?我应该选择哪一个?

(2)我不理解$ month变量之后的10。这意味着什么?

(3)除了A,B,C之外,还有其他任何方法可以将月号转换为月份名称吗?

2 个答案:

答案 0 :(得分:1)

他们是否执行相同的输出?

大多数日子,是的。但是,如果当前日期为31且$month为30天月,则A将在下个月返回。 2月也是有问题的,自然。

我应该选择哪一个?

  • A错了
  • B没问题(我使用1而不是10
  • C太多了

选择B

10变量之后的$month是什么意思?

这是您使用mktime()创建日期的月份中的某一天。如果您将其删除,PHP假定您希望与当月的当天相同。这就是A错误的原因(上面描述的错误)。

还有其他方法吗?

function getShortMonthNameByNumber($monthNum)
    switch ($monthNum) {
        case 1:
            return "Jan";
        case 2:
            return "Feb";
        case 3:
            return "Mar";
        // etc
    }

但是,我坚持B

您的代码使用date("M"),它返回月份的简称(JanFeb等)。如果您需要全名(JanuaryFebruary等),请使用"F"代替"M"

注意: 从不 在源代码中使用前导零编号because this usually means octal (instead of decimal)。在您的示例中, $month = 08 $month = 09 会破坏您的脚本。

答案 1 :(得分:0)

不使用mktme,请使用date()

echo date("F");// directly to get current month ie October

如果您有日期,并且想要提取月度祸害,请将strrtotime()date()

一起使用
$date = "2015-09-11";
echo date("F",strtotime($date));// will echo September