2013-11-30 3 views
0

У меня есть HTML-форма с несколькими полями ввода, у всех есть разные даты в виде значений (формат: yyyy-mm-dd).jQuery/moment.js: показать новейшее/последнее значение полей ввода (даты)

Как я могу получить самую новую, то есть самую последнюю дату из них? Я использую moment.js, если это помогает.

Мои поля являются стандартными полями ввода со значениями, рассчитанными на основе предыдущих выборов.

Пример:

<input type="text" class="milestone" id="ms1" name="ms1" value="2013-09-01" readonly /> 
<input type="text" class="milestone" id="ms2" name="ms2" value="2013-10-05" readonly /> 
<input type="text" class="milestone" id="ms3" name="ms3" value="2013-11-07" readonly /> 

Так что в этом случае мой результат должен быть «2013-11-07», как самая последняя дата из вышеперечисленного.

Большое спасибо за помощь в этом, Тим.

ответ

1
var max=0; 
var lastdate=0; 

$("input[type='text']").each(function() { 
    var Day = parseInt(moment($(this).val()).format("YYYYMMDD")); 
    if (max <= Day) 
     max = Day; 
    lastdate = parseInt(moment($(this).val()).format("D")); 
}); 

console.log(lastdate); 
+0

Это нехорошо. Это учитывает только день месяца. 2014-01-01 - после 2013-12-31, но этот код разместит его раньше, чем с 31> 1. Вам нужно рассмотреть всю ценность момента. –

+0

@MattJohnson У меня есть обновление моего кода спасибо :) –

+0

Все, что вам действительно нужно, это '.valueOf()' на данный момент, чтобы получить отметку времени unix. –

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