我已经暂时停留在这个问题上一段时间了,我准备把头发拉出来:)。如果广告系列日期在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;
};
答案 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.');
}