Как определить, была ли дата в прошлом с помощью JavaScript? - PullRequest
0 голосов
/ 10 июня 2018

Мне нужно проверить, была ли дата в прошлом, используя javascript.

Формат даты примерно такой: 10/06/2018

Я могу сделать это, используя следующий код:

var datep = '10/06/2018';
if(Date.parse(datep)-Date.parse(new Date()) < 0) {
   alert('date is in the past');
}

Но этот код, кажется, проверяет только на Year.Так что, если Month или Day в прошлом, он проигнорирует это!

Может кто-нибудь посоветовать совет по how to check for the day and month as well as the year?

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Формат даты

dd/mm/yyyy 

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Сделай два числа и сравни

var date1 ='05/06/2018';
date1=parseInt(date1.split('/').reverse().join(''));
//number 20180605

var date2 = new Date();
date2 = parseInt(date2.toISOString().slice(0,10).replace(/-/g,""));
// number 20180610

//compare
if(date1<date2)alert('in the past');
0 голосов
/ 10 июня 2018

Глядя на конструктор даты в документации см. "Синтаксис" , он ожидает целые числа в следующем порядке: ГГГГ, ММ, ДД, ЧЧ, ММ, СС ...

Так что переупорядочить это хитрость.И помните, что месяцы начинаются с нуля.

var date = '09/06/2018'; // DD/MM/YYYY

// Create a date object...
var dateArr = date.split("/");
var dateToCompare = new Date(parseInt(dateArr[2]),parseInt(dateArr[1])-1,parseInt(dateArr[0]));
console.log(dateToCompare);

// Date object for today
var today = new Date();
console.log(today);

if(dateToCompare < today){
  alert('date is in the past');
}

Еще один способ, которым я настоятельно рекомендую , когда дело касается дат, - это использование Moment.js :

Таким образом, вы можете легко управлять любым форматом даты ... и надежно выводить различные вычисления даты.

var date = '10/06/2018'; // DD/MM/YYYY

// Create a date object...
var dateToCompare = moment(date,"DDMMYYYY");  // See that second argument?
console.log(dateToCompare);

// Date object for today
var today = moment().startOf('day');  // At midnight earlier today
console.log(today);

if(dateToCompare < today){
  alert('date is in the past');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...