计算范围选择器javascript中的天数
我知道以前有人问过这个问题,但我找不到任何接近我正在尝试做的事情。我使用jQuery Datepicker,并将范围与2个日历一起使用。在我的应用程序中,我有一项服务,我收取1天的费用。我想做的是为最终用户提供一个日期范围,以选择他们想要购买的天数,并向他们显示总天数。为了让我开始,我只想知道如何计算范围内选择的天数 这是我的密码:计算范围选择器javascript中的天数,javascript,jquery,Javascript,Jquery,我知道以前有人问过这个问题,但我找不到任何接近我正在尝试做的事情。我使用jQuery Datepicker,并将范围与2个日历一起使用。在我的应用程序中,我有一项服务,我收取1天的费用。我想做的是为最终用户提供一个日期范围,以选择他们想要购买的天数,并向他们显示总天数。为了让我开始,我只想知道如何计算范围内选择的天数 这是我的密码: <?php // this has the css and javascript includes include('includes/header.php
<?php
// this has the css and javascript includes
include('includes/header.php');
?>
<div class="container">
<div class="row">
<div class="span3"></div>
<div class="span9">
<form>
<div class="controls">
<input id="range2Picker" name="range2Picker" value="" class="input-large" required="" type="text">
</div>
</form>
</div>
</div>
</div>
<script>
$('#range2Picker').datepick({
date1 = new Date(date1);
date2 = new Date(date2);
rangeSelect: true,
monthsToShow: 2,
changeMonth: false,
minDate: +3,
onClose: function(date1, date2) {
var timediff = date2 - date1;
alert('Number of days are: ' + timediff);
}
});
</script>
$('#range2Picker')。日期选取({
date1=新日期(date1);
date2=新日期(date2);
rangeSelect:true,
蒙斯托肖:2,
更改月份:false,
minDate:+3,
onClose:函数(date1,date2){
var timediff=date2-date1;
警报('天数为:'+timediff);
}
});
它以毫秒为单位提供差异,将它们转换为天
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);
它以毫秒为单位,将它们转换为天
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);
涉及
Math.ceil
的答案会在夏令时(夏令时)出现问题。例如,在美国:
Math.ceil((new Date("November 4, 2013").getTime() -
new Date("November 2, 2013").getTime()) / (1000 * 3600 * 24)); //=> 3
Math.floor
在春季也会遇到同样的问题:
Math.floor((new Date("March 11, 2013").getTime() -
new Date("March 9, 2013").getTime()) / (1000 * 3600 * 24)); // 1
最好是Math.round:
var days = Math.round( (1*date2 - 1*date1) / 86400000, 0);
涉及
Math.ceil
的答案会在夏令时(夏令时)出现问题。例如,在美国:
Math.ceil((new Date("November 4, 2013").getTime() -
new Date("November 2, 2013").getTime()) / (1000 * 3600 * 24)); //=> 3
Math.floor
在春季也会遇到同样的问题:
Math.floor((new Date("March 11, 2013").getTime() -
new Date("March 9, 2013").getTime()) / (1000 * 3600 * 24)); // 1
最好是Math.round:
var days = Math.round( (1*date2 - 1*date1) / 86400000, 0);
我想他也至少需要一天,以防万一==date2@Paul:可能,但如果是这样的话,它可能需要一个加号。(所以今天-昨天=>2。)我对商业案例了解不够,但如果有必要,可以很容易地添加。我怀疑他还需要至少1天的时间,以防日期1==date2@Paul:可能,但如果是这样的话,它可能需要一个加号。(所以今天-昨天=>2。)我对商业案例不太了解,但如果有必要,可以很容易地添加。