Javascript getFullYear、getMonth、getDate 不起作用

use*_*787 0 javascript

很抱歉,我可能会因此受到抨击,但作为一个新手,我想让这项工作在 Dates 上进行。我有这个代码:

var date = new Date('Apr 21, 2015');
Run Code Online (Sandbox Code Playgroud)

当我使用此代码发出警报时:

var date = new Date('Apr 21, 2015');
Run Code Online (Sandbox Code Playgroud)

它显示 NaN。有人可以建议我怎么做吗?

T.J*_*der 5

问题在这里:

var date = new Date('Apr 21, 2015');
Run Code Online (Sandbox Code Playgroud)

有在规格,日期/时间格式不支持。如果一个特定的 JavaScript 引擎支持它,那是因为它正在超越它,你不能指望它。因此,您最终会得到一个Date带有“时间值”的实例NaN(“时间值”是自 The Epoch — 1970 年 1 月 1 日以来的毫秒数),以及所有诸如此类的方法都getFullYear返回NaN。

所以:

  1. 如果您需要解析该格式,则必须编写代码来执行此操作,或者使用像 MomentJS 或其他几个已经编写好的库。

  2. 如果您只需要获取该日期作为Date实例,而不是使用字符串,则可以从多参数构造函数构建它:

    var date = new Date(2015, 3, 21); // Months start at 0, so 3 = April
    
    Run Code Online (Sandbox Code Playgroud)