我有这个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);
现在月份是毫米,所以喃喃自语,我希望它们用文字显示。现在我不是标文天才,其实是个菜鸟,但我的逻辑思维想到了这一点:
if(mm = 1){mm = 'January'}
现在正如我已经预料的那样,这是行不通的。
有没有办法用这个代码转换单词中的数字,或者我应该寻找另一种方法?
创建一个月份名称的数组或对象,如下所示:
var months = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];
然后像这样获取您需要的月份:
mm = months[mm - 1];
-1
是因为 JS 是从零开始的,所以 1 月在索引 0,二月在 1,依此类推。
另外,就像 GolezTrol 说的,你的方法很好,你只需要在你的 if 子句中使用比较运算符 (==) 而不是赋值运算符 (=)。
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
不过,在这种情况下,阵列解决方案是最简单的。