Ваш формат неверен, поэтому вы получаете ошибку invalid date
.Итак, используя ваш формат (дд / мм / гггг чч: мм тт), мы возьмем год, месяц, день, часы и минуты, затем переформатируем его в приемлемый формат с помощью конструктора Date
и создадимDate
экземпляр.
Вот функция, которая делает все, что говорится, и возвращает Date
экземпляр, который вы можете сравнить с другим Date
экземпляром:
function convertToDate(str) {
// replace '/' with '-'
str = str.replace(/\//ig, '-');
/**
* extracting the year, month, day, hours and minutes.
* the month, day and hours can be 1 or 2 digits(the leading zero is optional).
* i.e: '4/3/2022 2:18 AM' is the same as '04/03/2022 02:18 AM' => Notice the absence of the leading zero.
**/
var y = /\-([\d]{4})/.exec(str)[1],
m = /\-([\d]{2}|[\d])/.exec(str)[1],
d = /([\d]{2}|[\d])\-/.exec(str)[1],
H = /\s([\d]{2}|[\d]):/.exec(str)[1],
i = /:([\d]{2})/.exec(str)[1],
AMorPM = /(AM|PM)/.exec(str)[1];
// return a Date instance.
return new Date(y + '-' + m + '-' + d + ' ' + H + ':' + i + ' ' + AMorPM)
}
// testing...
var str1 = '20/09/2018 12:00 AM';
var str2 = '8/2/2018 9:00 PM'; // leading zero is omitted.
console.log(convertToDate(str1));
console.log(convertToDate(str2));
Date
зависит от местоположения пользователя / сервера, у двух пользователей могут быть разные результаты.
Подробнее о Date
.
Надеюсь, я подтолкнул вас дальше.