我有两个日期字符串,格式不同:
var date1 = "20/09/2016";//DD/MM/YYYY
var date2 = "Sep 5, 2018 12:00:00 AM"; // MMM DD, YYYY hh:mm:ss AM
如何仅使用DD&MM&YYYY并将两个字符串转换为日期并进行比较?
答案 0 :(得分:0)
要比较两个日期,必须先将其转换为Date
类型。
对于DD/MM/YYYY
,我更改了日期和月份的顺序,以便可以由new Date()
处理,并且可以直接转换其他日期格式。
之后,您只需要时间就可以根据需要进行比较。另外,如果您只想比较这些字段,则可以使用getYear
,getMonth
或getDate
之类的方法
var dateParts = "20/09/2016".split("/");
var date1 = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
var date2 = new Date("Sep 5, 2018 12:00:00 AM"); // MMM DD, YYYY hh:mm:ss AM
if (date1.getTime() > date2.getTime()){
console.log("date1 is higher");
}else {
console.log("date1 is lower");
}
答案 1 :(得分:0)
要进行比较,可以在UTC中使用以下ISO格式构造Date对象,然后使用getTime方法:
var newDate1 = new Date('2016-09-20Z');
var newDate2 = new Date('2018-08-05T12:00:00Z');
var equalDates = newDate2.getTime()===newDate1.getTime();
最后的Z表示应将其解析为UTC。
如果您不能像这样直接构建它们,则应该像解析任何其他字符串一样解析它们。例如,这是解析第一个字符串的方法:
var date1 = "20/09/2016";
var dateArray=date1.split('/');
var newDate1 = new Date(dateArray[2], dateArray[1] - 1, dateArray[0]); //JavaScript counts months from 0
moment.js库也可能对您有用。