JQuery无法比较当前日期

时间:2014-08-23 07:43:57

标签: javascript jquery jquery-ui datetimepicker

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

1 个答案:

答案 0 :(得分:1)

  

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

你没有。 jQuery没有日期/时间函数。但你可以使用JavaScript:

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

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

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

但如果您的目标是比较currentdate忽略时间,则可以使用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;
}