我想比较 javascript 中的两个日期。我一直在做一些研究,但我能找到的只是如何返回当前日期。我想比较 2 个不同的日期,与今天无关。我怎么做。
var startDate = Date(document.form1.Textbox2);
我想比较 javascript 中的两个日期。我一直在做一些研究,但我能找到的只是如何返回当前日期。我想比较 2 个不同的日期,与今天无关。我怎么做。
var startDate = Date(document.form1.Textbox2);
if (date1.getTime() > date2.getTime()) {
alert("The first date is after the second date!");
}
new Date('1945/05/09').valueOf() < new Date('2011/05/09').valueOf()
JavaScript 的日期可以使用与其余数据类型相同的比较运算符进行比较:>、<、<=、>=、==、!=、===、!==。
如果您有两个日期 A 和 B,则 A < B 如果 A 比 B 更早地追溯到过去。
但听起来您遇到的问题是将字符串转换为日期。您只需将字符串作为新日期的参数传递即可:
var someDate = new Date("12/03/2008");
或者,如果您想要的字符串是表单字段的值,看起来可能是:
var someDate = new Date(document.form1.Textbox2.value);
如果该字符串不是 JavaScript 识别为日期的内容,您仍然会得到一个 Date 对象,但它将是“无效的”。任何与另一个日期的比较都将返回 false。当转换为字符串时,它将成为“无效日期”。它的 getTime() 函数将返回 NaN,并且在日期本身上调用 isNaN() 将返回 true;这是检查字符串是否为有效日期的简单方法。
您可以在 Date 对象上使用 getTime() 方法来获取相对于 1970 年 1 月 1 日的时间戳(以毫秒为单位)。如果将两个日期转换为整数时间戳,则可以通过减去它们来比较差异。结果将以毫秒为单位,因此您只需除以 1000 秒,然后除以 60 分钟,依此类推。
我宁愿使用 Date valueOf 方法而不是 === 或 !==
似乎 === 正在比较内部对象的引用,而与日期无关。