如何在 Javascript 中获取 2 个选定日期之间的数据



我有两个日期,当前日期和上一个日期,采用 yyyy-mm-dd 格式。当前日期是今天的日期,以前的日期是今天日期之前的 6 个月。我已经编写了一个逻辑来默认显示 6 个月的数据,但我想更改以前的日期并获取从上一个日期到当前日期的数据,以便如果用户感兴趣,他/她甚至可以在 6 个月之前查看数据(例如 7 个月数据或 1 年数据(。请帮助我用Javascript编写这个逻辑。(当前日期没有变化,当前日期始终是今天的日期(

这可能有助于您:

select * from Tabel where DateColum between '2017/02/15' and '2017/05/17'

使用 momentJS。

$(document).ready(function() {
  $("#submit").click(function() {
  var value = $( "#value :selected" ).val();
  var date = $( "#date :selected" ).val();
    var fromDate = moment().subtract(value, date).format('YYYY-MM-DD');
    var toDate = moment().format("YYYY-MM-DD");
    console.log(fromDate + ' - ' + toDate);
  });
});
<!-- Include Bootstrap-select CSS, JS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/css/bootstrap-select.min.css" />
<link rel="stylesheet" href="http://formvalidation.io/bundles/86618a522dcd0b92cc9a34866e45fa9e.css" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
<style type="text/css">
  #bootstrapSelectForm .selectContainer .form-control-feedback {
    /* Adjust feedback icon position */
    right: -15px;
  }
</style>
  <div class="form-group">
<label class="col-xs-3 control-label">Value</label>
<div class="col-xs-5">
  <select name="value" id="value" class="form-control" multiple title="Select Value">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
        </select>
</div>
  </div>
  <div class="form-group">
<label class="col-xs-5 control-label">Day/Month/Year</label>
<div class="col-xs-3">
  <select name="date" id="date" class="form-control">
            <option value=""></option>
            <option value="minutes">minutes</option>
            <option value="hours">hours</option>
            <option value="days">days</option>
            <option value="weeks">weeks</option>
            <option value="months">months</option>
            <option value="years">years</option>
        </select>
</div>
  </div>
  <div class="form-group">
<div class="col-xs-5 col-xs-offset-3">
  <button type="submit" id="submit" class="btn btn-default">Submit</button>
</div>
  </div>

根据需要更改subtract(6, 'months')的值。

演示 https://jsfiddle.net/sumitridhal/97r1xd1r/

在 javascript 中,Date()给出当前日期。

要获取两个日期差异之间的数据,您只需为两个日期创建一个对象。

var current_date = new Date(); //current date
var previous_date = new Date("yyyy/mm/dd");
if(current_date - previous_date > 0) //valid date range
{
     //your_logic      
}

注意:如果您从数据库获取数据,请首先检查您的数据库日期 格式并根据数据库日期格式在查询中传递日期 字符串

您想在运行时更改日期值,那么您需要从 UI(如果有(或任何其他输入机制中获取日期。

对于用户界面:http://jsfiddle.net/GZ46K/


更新

function change(){
    
  var cur_date = document.getElementById('prev_date').value;
  var prev_date = document.getElementById('cur_date').value;
  if(cur_date - prev_date > 0) //valid date range
  {
    //your_logic      
  }
  
  //for test
  var title = document.getElementById('date_status');
  title.innerHTML = "Your Previous Date : " + prev_date + " Your Current Date : " + cur_date;
}
<h4 id="date_status">Javascript date change example</h4>
<input id='prev_date' type='date' value='2009-11-11'>
<input id='cur_date' type='date' value='2009-11-11'>
<input type="submit" id="byBtn" value="Change" onclick="change()"/>

相关内容

  • 没有找到相关文章

最新更新