2015-12-12 2 views
0

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

EDIT: Когда я оповещать "objetoFechaNacimiento", если пользователь ввел "22/1/2015", он предупреждает "Сб Окт 01 2016 00:00:00 GMT + 0200". Это должно быть проблемой ...

Это то, что я получил:

var nacimiento = document.getElementById("fechaNacimiento").value; 
    var objetoFechaActual = new Date(); 
    var objetoFechaNacimiento = new Date(nacimiento); 
    var fechaMinima = objetoFechaActual.setYear(objetoFechaActual.getFullYear() - 10); 
    var objetoFechaMinima = new Date(fechaMinima); 

    if (objetoFechaNacimiento.getTime() >= objetoFechaMinima.getTime()) { 
     alert("You can not be less than 10 years old."); 
     return false; 
    } 
+0

Так в чем вопрос. Я думаю, что вы должны работать отлично. – Indra

+0

Я собираюсь отредактировать. Это не проблема. – Biomehanika

+0

Я добавил редактирование сообщения. – Biomehanika

ответ

3

Просто переформатировать дату в правильном формате

var nacimiento = document.getElementById("fechaNacimiento").value; 
var parts = nacimiento.split("/"); 
var objetoFechaNacimiento = new Date(parts[2],parts[1]-1,parts[0]); 

Кроме того, при создании даты минимумов можно использовать setFullYear на эту дату вместо сохранения результата в SETDATE

+0

Обычно я включаю «* Не разбирайте строки с конструктором даты, всегда анализируйте их вручную *». ;-) – RobG

+0

Я никогда не разрешаю пользователям вводить даты напрямую. Дайте им выпадающие списки, созданные с действительными датами или выбором даты. – mplungjan

+0

А потом разобрать их вручную ... ;-) – RobG

0

Я бы попробовать moment.js библиотека http://momentjs.com/docs/#/manipulating/subtract/ Загрузите его с помощью require.js или просто так:

<script src="moment.js"></script> 

, а затем что-то вроде

var oneYearAgo = moment('2014-01-01T00:00:00.000').set('year',2013).format();

или накануне п лучше

var oneYearAgo = moment(objetoFechaActual).subtract(1, 'years').format();

В вашем случае, возможно, даже этого должно хватить:

var oneYearAgo = moment().subtract(1, 'years').format();

Я действительно рекомендую вам использовать этот LIB для дат.

+0

Благодарим вас, что это должно быть сделано без библиотек. – Biomehanika

+0

Огромный избыток .... – mplungjan

1

В jsfiddle, я попытался следующее:

var curDate = new Date(); 
curDate.setFullYear(curDate.getFullYear() - 10); 
alert(curDate); 

При выполнении он выводит Mon Dec 12 2005 ...

Смежные вопросы