目前我正在写日历。根据选择的motn($monthnum
),我将缩写的月份名称($monthabbr
)存储在数据库中。为此,我使用了一个switch-case结构。它适用于所有月份,但08年8月和9月至9月除外。由于我在所有月份都使用相同的代码,因此我不知道它为什么不起作用。我很接近边缘重新开始,但在此之前,我会更好地询问你是否看到错误。
switch( $monthnum ) {
case 01:
$monthabbr = 'Jan';
break;
case 02:
$monthabbr = 'Feb';
break;
case 03:
$monthabbr = 'Mär';
break;
case 04:
$monthabbr = 'Apr';
break;
case 05:
$monthabbr = 'Mai';
break;
case 06:
$monthabbr = 'Jun';
break;
case 07:
$monthabbr = 'Jul';
break;
case 08:
$monthabbr = 'Aug';
break;
case 09:
$monthabbr = 'Sep';
break;
case 10:
$monthabbr = 'Okt';
break;
case 11:
$monthabbr = 'Nov';
break;
case 12:
$monthabbr = 'Dez';
break;
}
答案 0 :(得分:10)
将01
,02
,...,09
改为1
,2
,...,9
(丢弃零(。)。
通过使用0
启动整数文字表示它应该被解释为八进制数(基数为8的数字)。
对于八进制数字,数字8
和9
是非法的。
进一步阅读:
(顺便说一下,您可能需要考虑使用数组或从整数到字符串的地图,然后使用类似monthAbbrs[$monthnum]
的内容查找字符串)
答案 1 :(得分:1)
您可以使用引号
来避免此问题switch($date){
case "01": $month = "January"; break;
case "02": $month = "February"; break;
case "03": $month = "March"; break;
case "04": $month = "April"; break;
case "05": $month = "May"; break;
case "06": $month = "June"; break;
case "07": $month = "July"; break;
case "08": $month = "August"; break;
case "09": $month = "September"; break;
case "10": $month = "October"; break;
case "11": $month = "November"; break;
case "12": $month = "December"; break;
}
答案 2 :(得分:0)