JavaScript: проверьте, является ли дата A не более чем в 3 раза раньше / позже даты B - PullRequest
0 голосов
/ 17 февраля 2011

Мне нужно написать функцию JavaScript, которая проверяет, составляют ли две даты (в формате dd/MM/yyyy) интервал времени не более 3 месяцев.

Я могу получить два значения из двух текстовых полей (нет необходимостипроверьте форматирование, мне дали элемент управления календаря, который автоматически форматирует дату правильно).

У меня почти нет опыта работы с JavaScript.Можете ли вы мне помочь?

Примеры:

15.02.2, 13.02.2011 -> вернуть true
01.06.2011, 5/10/2010 ->return false

Я уже проверяю, что дата A позже даты B (календарь делает это для меня)

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Нет необходимости в тонне кода:

function days_between(date1, date2) {
    return Math.round(Math.abs(date1 - date2) / (1000 * 60 * 60 * 24)) > 90;
}

date1 и date2 являются Дата объектов, например,

 var date1 = new Date('mm/dd/yyyy');
2 голосов
/ 17 февраля 2011

Вы можете найти разницу между двумя датами и возвращаемым значением соответственно.

function days_between(date1, date2) {

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)

    // check converting back to days and return
    return (Math.round(difference_ms/ONE_DAY) >90);
}

Если вы не можете правильно проверить или проанализировать дату, вам следует использовать

    var x=txtDate1.split("/");   //Here txtDate1 and txtDate2 are values from your textbox   
    var y=txtDate2.split("/");
  //date format(Fullyear,month,date) 

    var date1=new Date(x[2],(x[1]-1),x[0]);  
    var date2=new Date(y[2],(y[1]-1),y[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...