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