我有这个Javascript代码:
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;
var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm}
today = dd+'/'+mm;
document.write(today);
现在几个月都在mm,所以很麻烦,我希望它们用文字显示。现在我不是一个javescript天才,实际上是一个菜鸟,但我的逻辑思维想到了这个:
if(mm = 1){mm = 'January'}
正如我已经预料到的那样,这不起作用。
有没有办法用这段代码转换单词中的数字,还是应该寻找其他方法?
答案 0 :(得分:1)
if(mm == 1){mm = 'January'}
会更好用。问题是单个=
,它不是比较运算符,应该是双==
。这是代码中的实际错误。
通过使用@Shomz已建议的数组,您可以更容易/更易读。或者对于像这样的其他情况,开关可能会帮助你:
switch (mm) {
case 1: return 'January'; break;
case 2: return 'February'; break;
case 3: return 'March'; break;
case 4: return 'April'; break;
...
}
http://www.javascriptkit.com/javatutors/switch.shtml
在这种情况下,阵列解决方案是最简单的。
答案 1 :(得分:1)
制作月份名称的数组或对象,如下所示:
var months = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];
然后就这样得到你需要的月份:
mm = months[mm - 1];
-1
是因为JS是从零开始的,所以1月份是指数0,2月份是1,等等。
此外,像GolezTrol所说,你的方法很好,你只需要在if子句中使用比较运算符(==)而不是赋值运算符(=)。