如何将此字符串“07/10/2017 18:30 PM”转换为JavaScript日期类型

时间:2017-07-14 09:41:31

标签: javascript jquery date date-comparison

我正在尝试阅读表格中的所有日期,看看这些日期是旧日期而不是当前日期时间,如果这些日期是旧日期,那么请用某种颜色突出显示这些日期。

这是我的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日期并继续将其与当前日期进行比较?

3 个答案:

答案 0 :(得分:1)

这不是一个有效的日期,因为您要么是24小时格式,要么是AM | PM 12小时格式。

这有效:

new Date('07/10/2017 18:30'); // No 'PM' after the 24hr time

另请注意,JS日期是可变的,因此todayDatecheck将保留相同的日期值,但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

使用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);

JavaScript fiddle