使用javascript从日期数组中查找最大日期

时间:2015-10-21 15:29:25

标签: javascript

有两个日期字段,即'日期1'和'日期2'。点击“检查”按钮后,两个日期中的最大日期需要在“最长日期”中打印出来。领域。那么如何从一组日期打印最大日期。我已经尝试将日期值推入数组并找出最大值,但似乎有些不对劲。以下是HTML和javascript代码。



function checkMaxDate() {
    var dateArray = [];
    var date1 = dateArray.push(document.getElementById('date1').value);
    var date2 = dateArray.push(document.getElementById('date2').value);
    var maxDate = Math.max.apply(Math, dateArray);
    document.getElementById('maxdate').value = maxDate;
}

Date 1: <input type="date" id="date1" />
Date 2: <input type="date" id="date2" />
Max Date: <input type="date" id="maxdate" />
<button type="button" onclick="checkMaxDate()">Check</button>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

你很亲密。尝试在newDate中应用该函数,并null而不是Math。您还应该new Date(pushedArrayElement)成为Date对象,而不是将Strings推送到日期数组中。

var maxDate= new Date(Math.max.apply(null,dateArray));

请注意,这是错误的原因,因为无法保证用户输入将是合法的日期格式。

答案 1 :(得分:2)

尝试在document.getElementById('date1').value中包装new Date().getTime()

input type="date"也接受yyyy-mm-dd的值;尝试使用.toJSON()String.prototype.slice()#maxdate

返回的值yyyy-mm-ddmaxDate正确设置日期

function checkMaxDate() {
  var dateArray = [];
  var date1 = dateArray.push(new Date(document.getElementById('date1').value).getTime());
  var date2 = dateArray.push(new Date(document.getElementById('date2').value).getTime());
  var maxDate = Math.max.apply(Math, dateArray);
  document.getElementById('maxdate').value = new Date(maxDate).toJSON().slice(0, 10);
}
Date 1:
<input type="date" id="date1" />Date 2:
<input type="date" id="date2" />Max Date:
<input type="date" id="maxdate" />
<button type="button" onclick="checkMaxDate()">Check</button>