我要比较2个日期脚本,得到错误的结果,这是我的代码:
var current = new Date();
var date = new Date($(this).val());
alert(current) == "Sat Aug 23 2014 14:42:00 GMT+0700 (ICT)"
alert(date) == "Sat Aug 23 2014 00:00:00 GMT+0700 (ICT)"
这意味着时间不同。那么如何使用Jquery来清理时间呢?
任何解决方案都将受到赞赏。
$(this).val() = "08/23/2014"
答案 0 :(得分:1)
那么如何使用Jquery清除时间?
你没有。 jQuery没有日期/时间函数。但你可以使用JavaScript:
date.setHours(0, 0, 0, 0);
将时间设置为午夜(当地时间),而不影响日期。 (即使它被称为setHours
,它有分钟,秒和毫秒的可选参数。)
如果您想将其设置为午夜UTC,请使用setUTCHours
。
但如果您的目标是比较current
和date
忽略时间,则可以使用toISOString
(在ES5浏览器上;它可以在较旧的浏览器上进行填充):< / p>
if (date.toISOString().substring(0, 10) === current.toISOString().substring(0, 10)) {
// They're the same
}
或者,如果您需要支持没有toISOString
但又不想填充它的旧引擎,只需逐个字段(可能在可重用的函数中)进行操作
// Returns 0 if they're equal, < 0 if a is less than b, and > 0 if a is greater than b
function compareDateOnly(a, b) {
var rv;
rv = a.getFullYear() - b.getFullYear();
if (rv === 0) {
rv = a.getMonth() - b.getMonth();
if (rv === 0) {
rv = a.getDate() - b.getDate();
}
}
return rv;
}