我很抱歉我可能会因此而受到批评,但作为一个新手,我想让这项工作在约会上进行。我有这个代码:
var date = new Date('Apr 21, 2015');
当我使用此代码发出警报时:
var date = new Date('Apr 21, 2015');
alert(date.getFullYear());
alert(date.getMonth());
alert(date.getDate ());
它显示 NaN。有人可以建议我如何做到这一点吗?
最佳答案
问题出在这里:
var date = new Date('Apr 21, 2015');
有no support for that date/time format in the specification 。 如果某个特定的 JavaScript 引擎支持它,那是因为它已经超越了它,您不能指望它。因此,您最终会得到一个带有“time value ” NaN
的 Date
实例(“时间值”是自 The Epoch — 1970 年 1 月 1 日以来的毫秒数),以及所有各种方法,例如 getFullYear
等返回 NaN
。
所以:
如果您需要解析该格式,则必须编写代码来执行此操作,或者使用 MomentJS 等库或其他几个已经编写的库。
如果您只需要以
Date
实例的形式获取该日期,而不是使用字符串,则可以从多参数构造函数构建它:var date = new Date(2015, 3, 21); // Months start at 0, so 3 = April
关于Javascript getFullYear、getMonth、getDate 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789577/