我正在使用 jquery 的 daterangepicker 组件。当我将日期传递为“Jan 2011”时,jquery 的 Date.parse() 函数会给出一些奇怪的输出。以下是不同用例的示例输出:
代码片段:
var dateStr = "Jan 2011";
var dt = Date.parse(dateStr);
alert(dt.getDate() + "/" + dt.getMonth());
输出:
dateStr = "Jan 2011" : output = 25/0 (todays date is 25 feb 2011)
dateStr = "Feb 2011" : output = 1/1
dateStr = "Dec 2011" : output = 1/11
因此,对于 1 月的任何其他月份,日期设置为该月的第一个日期,而仅对于 1 月,日期设置为当前日期。
知道这可能是什么原因吗?
在您的示例中,这不是标准的
Date.parse
功能。parse
函数返回 numeric 结果,而不是 Date 对象。在您的示例中,
parse
函数返回Date对象。Date.parse
已在您的代码中重新定义。请检查一下。
标准
parse
函数始终返回您所在月份的第一天
function myFunction() {
var d = Date.parse("Jan 2011");
document.getElementById("demo").innerHTML = d;
}
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display milliseconds between a specified date and Jan 2011.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
</html>
parse() 方法解析日期字符串并返回日期字符串与 20111 年 1 月午夜之间的毫秒数