如何使用以下 JavaScript 代码以单词形式获取带有月份的日期:



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

不过,在这种情况下,阵列解决方案是最简单的。

最新更新