我想获得两个文本框之间的天数,但是如何使用JavaScript将日期转换为整数?
<script type="text/javascript">
function calc(a,b,sub) {
var one = parseInt(a);
if (isNaN(one)) {
alert('Invalid entry: '+a);
one=0;
}
var two = parseInt(document.getElementById(b).value);
if (isNaN(two)) {
alert('Invalid entry: '+b);
two=0;
}
document.getElementById(sub).value =two-one;
}
</script>
HTML
<input type="text" name="Itm_1" id="datepicker1" onchange="calc(Date.parse(this.value),'datepicker1','result')" required="" style="width:205px;" placeholder="<?php echo Date(" d/m/Y ");?>"/>
<input type="text" name="Itm_2" id="datepicker2" onchange="calc(Date.parse(this.value),'datepicker2','result')" required="" style="width:205px;" placeholder="<?php echo Date(" d/m/Y ");?>"/>
<textarea name="Itm_3" id="result" id="result" cols="30" rows="5" style="height:50px;" value="" readonly=""></textarea>
答案 0 :(得分:0)
如果您使用Date对象,则以下网站声称您可以使用parse()方法获取自1970年1月1日午夜以来的毫秒数。如果你想要以天为单位的整数,你可以除以(1000 * 60 * 60 * 24):
http://www.w3schools.com/jsref/jsref_obj_date.asp
如果我理解要正确执行的操作,请注意以下内容(请注意对HTML输入的更改)。
<script type="text/javascript">
function calc(a,b,sub) {
var one = (Date.parse(document.getElementById(a).value)/(1000*60*60*24));
if (isNaN(one)) {
alert('Invalid entry: '+a);
one=0;
}
var two = (Date.parse(document.getElementById(b).value)/(1000*60*60*24));
if (isNaN(two)) {
alert('Invalid entry: '+b);
two=0;
}
document.getElementById(sub).value =two-one;
}
</script>
<input type="text" name="Itm_1" id="datepicker1" onchange="calc('datepicker1','datepicker2','result')" required="" style="width:205px;" />
<input type="text" name="Itm_2" id="datepicker2" onchange="calc('datepicker1','datepicker2','result')" required="" style="width:205px;" />
<textarea name="Itm_3" id="result" id="result" cols="30" rows="5" style="height:50px;" value="" readonly=""></textarea>