【问题标题】:How many days fall in a set of date ranges based on a date range基于日期范围的一组日期范围内有多少天
【发布时间】:2015-03-16 18:58:22
【问题描述】:

用户输入的日期范围如下:

从:01/04/2015 至:2015 年 1 月 12 日

我有一些时期定义如下:

var period1 = '01/04/2015';
var period2 = '01/11/2015';

我想知道有多少天:

第 1 期之前

在第 1 期之后(或等于)但在第 2 期之前

在(或等于)周期 2 之后

我想使用 javascript 来解决这个问题。我正在制作一个计算器,可以根据不同的日期范围计算出预订费用。

感谢您的帮助, 大卫

【问题讨论】:

  • 你的意思是在当年和最新的吗?
  • 你的日期格式是什么?它可以是日/月/年或月/日/年。
  • 请展示您尝试过的内容。研究日期差异并不难,您至少应该尝试过而不是期望其他人为您编写代码。更不用说您之前和之后的标准都缺少详细信息
  • 您好,在我在这里发布之前,我花了大约 4 个小时谷歌搜索并尝试编写代码,我在 stackoverflow 上发现了很多类似的脚本和帖子,但没有什么能满足我的需要。日期格式将是 dd/mm/yy 使用 jquery 日期选择器,但是我知道 javascript 日期将是 mm/dd/yy。

标签: javascript jquery date-range


【解决方案1】:

如果您要处理日期,我强烈建议您使用 moment.js。 http://momentjs.com/ 根据您的要求,我建议从这里开始:http://momentjs.com/docs/#/displaying/from/http://momentjs.com/docs/#/displaying/difference/

【讨论】:

  • 如果没有工作示例,这基本上是一个仅链接的答案。
  • 你是对的。我不会为您解决问题,因为根据您的问题,您还没有尝试自己解决问题。你请求帮助弄清楚如何做到这一点,moment.js 将帮助你解决这个问题,但你想要
  • 道歉@TomFenech,我没有意识到你不是OP。无论如何,我的理由是一样的,因为 OP 的问题含糊不清,而且他们没有努力解决问题。
  • 没问题,我只是不确定您为什么将其发布为答案 - 作为评论会更好。
  • 由于有几个链接,我希望空间提供一个答案(它确实在一定程度上回答了所提出的问题)。尽管如此,这是一个公平的观点,我以后会牢记这一点。
【解决方案2】:

这看起来可以按照您需要的方式工作。 (我假设期间之前/之后的日子是指日期所在的年份)。

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>

【讨论】:

    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多