如何使用以下javascript代码获取包含月份的日期:

时间:2013-11-12 13:10:57

标签: javascript html date

我有这个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'} 

正如我已经预料到的那样,这不起作用。

有没有办法用这段代码转换单词中的数字,还是应该寻找其他方法?

2 个答案:

答案 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子句中使用比较运算符(==)而不是赋值运算符(=)。