我有一个网站,用户可以在其中输入当天的任务,并且有义务输入截止日期和时间(格式为:MM/DD/YYYY HH:MM,即 03/07/2015 23:15) 。我被要求找到一种方法,在到期日时间即将到来和逾期时突出显示 TR 单元格。
示例:
如果截止日期时间是 15 分钟后,则以橙色突出显示 TR。
如果截止日期时间已过,则以红色突出显示 TR。
到目前为止,我已经设法找到一种使用如下所示的方法来获取当前时间的方法:
jQuery(document).ready(function($) {
var dNow = new Date();
var current_time = ("0" + (dNow.getMonth()+1)).slice(-2) + '/' + ("0" + dNow.getDate()).slice(-2) + '/' + dNow.getFullYear() + ' ' + ("0" + dNow.getHours()).slice(-2) + ':' + ("0" + dNow.getMinutes()).slice(-2);
alert(current_time);
});
我需要帮助的是创建逻辑,如果 current_time > due_date_time 则突出显示红色,或者如果 due_date_time 在 15 分钟内到期则突出显示橙色。我怎样才能做到这一点?
最佳答案
您可以使用以下 jQuery 来实现此目的。
$('#timeTable tr td').each(function () {
var dtTd = new Date($(this).html());
var dtNew = new Date();
// 15 minutes is 900000 milliseconds
// getTime() doc - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime
if (dtTd.getTime() - dtNew.getTime() < 900000 && dtNew < dtTd) {
$(this).parent('tr').addClass('min15');
} else {
if (dtNew > dtTd) {
$(this).parent('tr').addClass('old');
}
}
});
基本上,发生的事情是这样的:
- 浏览表中的每个 td。
- 从 td 获取文本并将其转换为日期。
- 检查日期是否距现在还不到 15 分钟。
- 如果少于 15 分钟,则将
min15
类应用于tr
。 - 否则检查日期是否早于现在。
- 如果是旧的,则将
old
类添加到tr
中。
jQuery 仅用于循环遍历每个 td,并轻松应用 css 类。如果您在代码中的其他地方没有使用 jQuery,则可以将其更改为 vanilla JS。
关于javascript - Jquery 或 Javascript - 验证当前日期是否大于截止日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923284/