用户输入日期范围,如:
来自:01/04/2015 致:2015年12月1日
我有一些时期定义如下:
var period1 = '01/04/2015';
var period2 = '01/11/2015';
我想知道有多少天:
在第1期之前
在(或等于)期间1之后但在期间2之前
在(或等于)第2期之后
我想用javascript来解决这个问题。我正在制作一个计算器,根据不同的日期范围计算预订成本。
感谢您的帮助, 大卫
答案 0 :(得分:1)
如果您正在使用日期,我强烈建议您使用moment.js。 http://momentjs.com/根据您的要求,我建议您从http://momentjs.com/docs/#/displaying/from/或http://momentjs.com/docs/#/displaying/difference/
开始答案 1 :(得分:1)
这看起来像你需要的那样工作。 (我假设期间之前/之后的日子指的是那个日期的年份。)
function getValues() {
// Get the dates from the textboxes
var period1Date = new Date($('#period1').val());
var period2Date = new Date($('#period2').val());
var firstDayOfYear = new Date('1/1/' + period1Date.getFullYear().toString());
var lastDayOfYear = new Date('12/31/' + period2Date.getFullYear().toString());
// Get days between first day of year and period 1 date
var daysBeforePeriod1 = (firstDayOfYear - period1Date)/(1000*60*60*24);
// Get days between last day of year and period 2 date
var daysAfterPeriod2 = (lastDayOfYear - period2Date)/(1000*60*60*24);
// Get days between period 1 and period 2 dates
var daysBetween = (period1Date-period2Date)/(1000*60*60*24);
// Set labels on screen
$('#daysBefore1').text('Days Before Period 1: ' + Math.abs(daysBeforePeriod1).toString());
$('#daysBetween').text('Days Between Periods: ' + Math.abs(daysBetween).toString());
$('#daysAfter2').text('Days After Period 2: ' + Math.abs(daysAfterPeriod2).toString());
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Period 1: <input type="text" id="period1" value="01/04/2015"/>
<br><br>
Period 2: <input type="text" id="period2" value="01/11/2015"/>
<br><br>
<button type="button" onclick="getValues()">Get Values</button>
<br><br>
<label id="daysBefore1"></label>
<br>
<label id="daysBetween"></label>
<br>
<label id="daysAfter2"></label>