我想将月份号码转换为月份名称。我试过以下代码:
:一种。
$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之外,还有其他任何方法可以将月号转换为月份名称吗?
答案 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")
,它返回月份的简称(Jan
,Feb
等)。如果您需要全名(January
,February
等),请使用"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