-2

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

现在月份以毫米为单位,所以我希望它们以文字显示。现在我不是 javescript 天才,实际上是一个菜鸟,但我的逻辑思维是这样的:

if(mm = 1){mm = 'January'} 

现在,正如我已经预料的那样,这行不通。

有没有办法用这段代码将数字转换成文字,还是我应该寻找另一种方式?

4

2 回答 2

1

if(mm == 1){mm = 'January'}会更好。问题是 single =,它不是比较运算符,应该是 double ==。这是您的代码中的实际错误。

不过,通过使用@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

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

于 2013-11-12T13:13:33.460 回答
1

制作一个月份名称的数组或对象,如下所示:

var months = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];

然后像这样得到你需要的月份:

mm = months[mm - 1];

-1是因为 JS 是从零开始的,所以一月是索引 0,二月是索引 1,等等。

此外,就像 GolezTrol 所说,您的方法很好,您只需要在 if 子句中使用比较运算符 (==) 而不是赋值运算符 (=)。

于 2013-11-12T13:14:31.163 回答