我有两个日期,当前日期和上一个日期,采用 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()"/>