我想显示依赖于数值的月份名称。所以如果11,11月显示,9显示9月等等。
这是我的代码:
$month=$_GET["q"];
if($month['month'] == '11')
{
echo"November";
}
if($month['month'] == '10')
{
echo"October";
}
if($month['month'] == '9')
{
echo"September";
}
这没有显示任何内容?有人可以帮忙吗?
答案 0 :(得分:2)
无需创建多个if
语句。您只需使用DateTime::createFromFormat
即可实现此目的:
$month_number = (int) $_GET["q"];
if($month_number > 0 && $month_number <= 12)
echo DateTime::createFromFormat('m', $month_number)->format('F');
答案 1 :(得分:2)
如果$_GET['q']
包含您的月份编号,则只需使用$month
而不是$month['month']
。
可能这是使用Non-OOP PHP实现结果的最佳方式:
$month = $_GET['q'];
$monthName = date("F", mktime(0, 0, 0, $month));
echo $monthName;
答案 2 :(得分:0)
它会喜欢这个
if($month == '11') {
}
因为您直接将GET
值分配给$month
。请假设q
将是月份名称。
答案 3 :(得分:0)
因为$ _GET [“q”]不能是一个数组,所以你不能使用$ month ['month'],直接使用$ month
而不是你可以使用的其他代码,以下代码直接回显月名。
$monthName = date("F", mktime(0, 0, 0, $month));
echo $monthName;
http://php.net/manual/en/function.date.php和http://php.net/manual/en/function.mktime.php
的更多详情答案 4 :(得分:0)
这里你的情况 $ month 是变量而不是数组所以尝试使用这样......
if($month=='11')
echo 'Nov';
答案 5 :(得分:0)
试试这个:
$monthArr = array('1'=>'Jan','2'=>'Feb');
echo $monthArr[$month];
答案 6 :(得分:0)
$ month = date('n');
if($month == '11')
{
echo "November";
}
if($month == '10')
{
echo "November";
}
确保您获得正确的值,例如:10,11 ... for month variable
答案 7 :(得分:-1)
你可以简单地使用字符串来计时。
$month=$_GET["q"];
echo date('F', strtotime('2012-' . $month . '-01'));
这将为您提供月份的全名,具体取决于月份变量的分配数量。
Strtotime需要日期,因此为什么2012等也在那里,尽管与输出无关。