有两个日期字段,即'日期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;
答案 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-dd
为maxDate
正确设置日期
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>