我正在尝试阅读表格中的所有日期,看看这些日期是旧日期而不是当前日期时间,如果这些日期是旧日期,那么请用某种颜色突出显示这些日期。
这是我的Javascript代码
$(".ticket-gird-td-duedate").each(function(i, e) {
debugger;
var dueDateAsString = $(e).text();
console.log(dueDateAsString);
var dueDate = new Date(dueDateAsString);
var currentdate = new Date();
if (dueDate < currentdate) {
//mark date in red color
console.log("I need to change color for this date as this is past date" + dueDate);
}
});
此处的问题是dueDateAsString
来自"07/10/2017 18:30 PM"
当我做的时候
new Date("07/10/2017 18:30 PM")
失败且日期错误无效
无效日期
如何将字符串日期转换为Javascript日期并继续将其与当前日期进行比较?
答案 0 :(得分:1)
这不是一个有效的日期,因为您要么是24小时格式,要么是AM | PM 12小时格式。
这有效:
new Date('07/10/2017 18:30'); // No 'PM' after the 24hr time
另请注意,JS日期是可变的,因此todayDate
和check
将保留相同的日期值,但check
将是一个数字。
答案 1 :(得分:0)
你先打电话给这个
todayDate.setDate(todayDate.getDate() - 5);
今天会更新到5天前。然后你只需要分配它来检查或今天你进一步。
var check = todayDate;
希望这有帮助。
答案 2 :(得分:0)
您可以使用moment.js库(另一种实现日期解析的好方法)来实现此目的。
Moment.Js 库是免费提供的。您可以根据需要使用此库的缩小版或完整版。在这 库所有操作都是在一个时刻对象上执行的 日期或时间仅作为时刻对象存储在此库中。所以 这一刻对象是整个图书馆的核心。你可以找到 这个图书馆位于Moment.js site's home page。
将momentjs
库引用添加到您的项目中 - https://momentjs.com/downloads/moment.js
var todayDate = new moment().format("MM/DD/YYYY h:mm:ss a");
var yesterday = todayDate.toLocaleString();
var check = moment(todayDate, "MM/DD/YYYY h:mm:ss a").add('days', -5);
alert("Your Old Date is- " + todayDate);
alert(check);
alert("Your Old Date is- " + yesterday);