获取日期字符串,如果到期日期少于2周,则添加一个类来跨越

时间:2017-06-30 19:30:54

标签: javascript jquery

我已经暂时停留在这个问题上一段时间了,我准备把头发拉出来:)。如果广告系列日期在2周或更短的时间内到期,我必须在一个范围内添加一个类。检索的日期是以下格式的字符串

2017年7月26日

当我运行此函数时,我将日期字符串作为参数传递,因为该方法将附加到保存字符串的var。但无论出于何种原因,这种逻辑都不起作用。我完全搞砸了吗?它在某个地方默默地失败了。谢谢。我知道它应该很容易,但我陷入了困境。

campMethods.EndDateAlert = function (dateString) {
    var currentDate = new Date ();
    var twoWeeks = new Date ();
    twoWeeks.setDate(currentDate.getDate() + 14)
    var $EndDateSpan = $('.campaign-end-date');

    if (dateString <= twoWeeks) { 
        $EndDateSpan.addClass('red');
  }
    return dateString;
};

2 个答案:

答案 0 :(得分:1)

尝试比较日期的毫秒数。 我们知道两周内有1000 * 60 * 60 * 24 * 14 = 1209600000毫秒,知道这一点我们可以在当前日期添加1209600000毫秒,并将其与截止日期的毫秒数进行比较。

let dueDate = new Date('07/26/2017');

if(Date.now() + 1209600000 > dueDate.getMilliseconds()){
    //do stuff
}

答案 1 :(得分:1)

你可以用一些数学来做到这一点。关键是,2周= 14天。

以下是您的Pure Javascript示例:

var date = "07/26/2017".split("/");
var formatedDate = (date[2] + '' + date[0] + '' + date[1]);


var currentDate = new Date();

var today = currentDate.getFullYear() +''+ ("0" + (currentDate.getMonth() + 1)).slice(-2)+''+("0" + currentDate.getDate()).slice(-2); 

var compareDay = formatedDate - today;


if(compareDay < 14){// 14 day = 2 week
// do something for less than 2 weeks
console.log('Less than 2 weeks will be expired');
} else {
// also can do something
console.log('more than 2 weeks will be expired.');
}

Javascript Date Reference