javascript - Jquery 或 Javascript - 验证当前日期是否大于截止日期

标签 javascript jquery html

我有一个网站,用户可以在其中输入当天的任务,并且有义务输入截止日期和时间(格式为: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。

Here is the jsFiddle for the same

关于javascript - Jquery 或 Javascript - 验证当前日期是否大于截止日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923284/

相关文章:

javascript - 如何在悬停和内部内容的 .click() 上暂停 .setInterval()?

javascript - 隐藏/显示按钮在 jquery 中不起作用

javascript - 保留点击功能以在稍后的事件中启动

javascript - 如果不是我们想要的,请删除子字符串?

javascript - 使用下一个和上一个按钮循环遍历 li 元素

php - 在 PHP 中访问 javascript 函数值?

jquery - 在 Jquery 中,如何选择第一个不是复选框或按钮的空白输入

html - 为什么这个媒体查询显示没有不起作用?

css - 流畅的 CSS 布局,背景上有一个居中的大 div

Javascript。未捕获的类型错误 : Hashids is not a constructor