我将比较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"

最佳答案

那么如何使用Jquery清除时间呢?


你不知道jQuery没有日期/时间功能。但是您可以使用JavaScript:

date.setHours(0, 0, 0, 0);


这会将时间设置为午夜(本地时间),而不会影响日期。 (即使它被称为setHours,它也具有分钟,秒和毫秒的可选参数。)

如果要将其设置为UTC午夜,请使用setUTCHours

但是,如果您的目标是比较currentdate忽略时间,则可以使用toISOString(在ES5浏览器上;可以在较旧的浏览器上填充):

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;
}

09-30 16:17
查看更多