有两个输入
From: <input id="from" type="date" placeholder="dd/mm/yy"><br>
To: <input id="to" type="date" placeholder="dd/mm/yy">
我想要比较这两个输入,以确保检出日期不早于检入日期。但是如何比较呢?thx
发布于 2016-11-26 23:40:21
这就是我做这件事的方式
HTML
<script>
function compareDates() {
//Get the text in the elements
var from = document.getElementById('from').textContent;
var to = document.getElementById('to').textContent;
//Generate an array where the first element is the year, second is month and third is day
var splitFrom = from.split('/');
var splitTo = to.split('/');
//Create a date object from the arrays
var fromDate = Date.parse(splitFrom[0], splitFrom[1] - 1, splitFrom[2]);
var toDate = Date.parse(splitTo[0], splitTo[1] - 1, splitTo[2]);
//Return the result of the comparison
return fromDate < toDate;
}
</script>
<input id="from" type="date" placeholder="dd/mm/yy"><br>
<input id="to" type="date" placeholder="dd/mm/yy">
<button onclick="compareDates()">Compare</button>
让我知道你的进展如何。
发布于 2016-11-26 23:24:52
您可以先使用valueAsDate,然后再使用比较器:
input1 = document.getElementById('from');
input2 = document.getElementById('to');
date1 = input1.valueAsDate;
date2 = input2.valueAsDate;
console.log(date1 < date2 ? 'valid' : 'invalid');
发布于 2016-11-26 23:25:32
如果希望日期格式为dd/mm/yy,可以使用以下函数将字符串转换为日期:
function compareDate(str){
// str format should be dd/mm/yyyy. Separator can be anything e.g. / or -. It wont effect
var dt = parseInt(str.substring(0,2));
var mon = parseInt(str.substring(3,5));
var yr = parseInt(str.substring(6,10));
var date = new Date(yr, mon-1, dt);
return date;
}
然后,只需从输入中获取值并将它们作为日期进行比较
var input1 = compareDate(document.getElementById('from').value);
var input2 = compareDate(document.getElementById('to').value);
Date对象将执行您想要的操作-为每个date构造一个date,然后使用>、<、<=或>=对它们进行比较。
https://stackoverflow.com/questions/40819789
复制相似问题