【问题标题】:How to check date range in datetimepicker jquery?如何检查 datetimepicker jquery 中的日期范围?
【发布时间】:2016-10-28 03:04:35
【问题描述】:

我在https://github.com/xdan/datetimepicker 使用过 datetimepicker,它太酷了,我想在一周内(7 天)检查它的日期范围,我试试

               if ($("#FromDate").val() + 7 > $("#ToDate").val()) {
                   alert("Please choose a week");
                }

一些例子:

Fromdate: 27/10/2016 Todate: 31/10/2016 : OK
Fromdate: 27/10/2016 Todate: 2/11/2016 : OK
Fromdate: 27/10/2016 Todate: 3/11/2016 : show alert

但似乎它不起作用。

【问题讨论】:

  • 你能解释一下什么不起作用吗?
  • 亲爱的@James,我添加了描述,请再次检查。谢谢

标签: javascript jquery datetime datetimepicker


【解决方案1】:

我已经更新了答案,它工作正常。点击这里jsFiddle

var fromDate = new Date($("#FromDate").val());
var sevenDate = new Date(fromDate.setDate(fromDate.getDate() + 7));
var toDate = new Date($("#ToDate").val());

if (sevenDate > toDate) {
    alert("Please choose a week");
}

【讨论】:

  • 还是不行?我刚刚检查了答案中包含的链接,这很好。告诉我
【解决方案2】:

这样做的方法是使用new Date()将日期字符串转换为日期对象
但是如果您使用'dd/mm/yy' 格式,则存在一个问题,它在转换时将无效为日期 将其转换为new Date() 只需将其格式重新排列为有效格式我使用格式'yy-mm-dd'

HTML

Start: <input id="from" type="text" /><br />
End: <input id="to" type="text" /><br />
<input id="thesubmit" type="button" value="Submit" /> 

JAVASCRIPT

$(document).on('click', '#thesubmit', function() {
    var from = new $("#from").val().split('/');
  var to = new $("#to").val().split('/');
  from = new Date(from[2]+'-'+from[1]+'-'+from[0]);
  to = new Date(to[2]+'-'+to[1]+'-'+to[0]);

  if (new Date(from) == 'Invalid Date' || new Date(to) == 'Invalid Date') {
    return alert('Select a valid date');
  }

  var timeDiff = Math.abs(to.getTime() - from.getTime());
        var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
        if (diffDays >= 7) {
    alert('It is 1 week range');
  }
})

DEMO

【讨论】:

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