我有yyyy-mm-dd格式的两个日期,当前日期和上一个日期。当前日期是今天的日期,上一个日期是今天的日期之前的6个月。我写了一个默认显示6个月数据的逻辑但是我想改变以前的日期并从前一个日期到当前日期获取数据,这样如果用户感兴趣他/她甚至可以在6个月之前看到数据(例如7月数据或1年数据)。请帮我在Javascript中编写这个逻辑。 (当前日期没有变化,当前日期始终是今天的日期)
答案 0 :(得分:0)
这可能会对您有所帮助:
select * from Tabel where DateColum between '2017/02/15' and '2017/05/17'
答案 1 :(得分:0)
使用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>
&#13;
根据要求更改subtract(6, 'months')
的值。
答案 2 :(得分:0)
在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
}
注意:如果从db获取数据,请首先检查数据库日期 格式并根据db-date格式在查询中传递日期 串
您想在运行时更改日期值,然后您需要从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;
}
&#13;
<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()"/>
&#13;