сравнить две строки даты js? - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть две строки даты в разных форматах:

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 и сравнить их?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Чтобы сравнить их, вы можете построить объект Date в следующем формате ISO в UTC, а затем использовать метод 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 может быть полезна и вам.

0 голосов
/ 19 сентября 2018

Чтобы сравнить обе даты, сначала нужно преобразовать их в тип 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...