基于日期范围的一组日期范围内有多少天
How many days fall in a set of date ranges based on a date range
用户输入日期范围,例如:
自:2015 年 1 月 4 日
至:2015 年 1 月 12 日
我定义了一些时间段,例如:
var period1 = '01/04/2015';
var period2 = '01/11/2015';
我想知道有多少天:
第 1 期之前
第 1 期之后(或等于)第 2 期之前
第 2 期之后(或等于)
我想使用 javascript 解决这个问题。我正在制作一个计算器,可以计算出基于不同日期范围的预订费用。
感谢您的帮助,
大卫
如果您要处理日期,我强烈建议您使用 moment.js。 http://momentjs.com/ Based on what you're asking for, I'd recomment starting here: http://momentjs.com/docs/#/displaying/from/ or http://momentjs.com/docs/#/displaying/difference/
这看起来可以按照您需要的方式工作。 (我假设天数 before/after 期间指的是日期所在的年份)。
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>
用户输入日期范围,例如:
自:2015 年 1 月 4 日 至:2015 年 1 月 12 日
我定义了一些时间段,例如:
var period1 = '01/04/2015';
var period2 = '01/11/2015';
我想知道有多少天:
第 1 期之前
第 1 期之后(或等于)第 2 期之前
第 2 期之后(或等于)
我想使用 javascript 解决这个问题。我正在制作一个计算器,可以计算出基于不同日期范围的预订费用。
感谢您的帮助, 大卫
如果您要处理日期,我强烈建议您使用 moment.js。 http://momentjs.com/ Based on what you're asking for, I'd recomment starting here: http://momentjs.com/docs/#/displaying/from/ or http://momentjs.com/docs/#/displaying/difference/
这看起来可以按照您需要的方式工作。 (我假设天数 before/after 期间指的是日期所在的年份)。
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>