Javascript 根据选择,日期应显示从和到之间的某些特定差异
我有下拉按钮。根据选择,起始日期和截止日期之间应存在差异。如果我选择第一个选项,差异应为10天,如2017年11月16日至2017年11月26日,如果我选择第二个选项,差异应为30天。我试着这样做:Javascript 根据选择,日期应显示从和到之间的某些特定差异,javascript,php,Javascript,Php,我有下拉按钮。根据选择,起始日期和截止日期之间应存在差异。如果我选择第一个选项,差异应为10天,如2017年11月16日至2017年11月26日,如果我选择第二个选项,差异应为30天。我试着这样做: <select class="form-control" name="slct" id="slct" required style="font- family : Verdana; font-size: 20px; height: 40px;" onchange="getResult()"&g
<select class="form-control" name="slct" id="slct" required style="font-
family : Verdana; font-size: 20px; height: 40px;" onchange="getResult()">
<option value="">Select</option>
<option value="10">select 1</option>
<option value="30">select 2</option>
<option value="60">select 3</option>
</select>
<table style="margin-top:10px;">
<tr>
<div class="form-group">
<td><label for="from" style="margin-left:30px">From:
</label>
<?php echo "<input type='date' class='form-control'
name='dte' id='dat' value='" . date('Y-m-d') . "' required />" ?> 
</td>
<td><label for="from">To:</label>
<input type="date" name="to" id="todate" value=""
required /> </td>
</div>
</tr></table>
<script>
function getResult() {
var dateval = $("#frmdate").val();
var offset = $("#slct").value();
if (dateval != "" && offset != "") {
var dat = $("#frmdate").datepicker("getDate");
dat.setDate(dat.getDate() + parseInt(offset));
$("#todate").text($.datepicker.formatDate("yy-mm-dd",
dat));
}
}
</script>
挑选
选择1
选择2
选择3
发件人:
您可以通过获取“from”日期值并使用一些JavaScript函数来添加日期并对其进行格式化来实现这一点
首先检查select值,然后相应地将天数添加到“todate”中。下面是实现这一点的JavaScript:
function getResult() {
var startDate = document.getElementById('dat').value; //Get from date
if(document.getElementById('slct').value == "10"){
var endDate = document.getElementById('todate').value = formatDate(addDays(startDate, 10));
}
else if(document.getElementById('slct').value == "30"){
var endDate = document.getElementById('todate').value = formatDate(addDays(startDate, 30));
}
else if(document.getElementById('slct').value == "60"){
var endDate = document.getElementById('todate').value = formatDate(addDays(startDate, 60));
}
}
//Function to add days https://stackoverflow.com/a/19691491/5612132
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
//Format date https://stackoverflow.com/questions/23593052/format-javascript-date-to-yyyy-mm-dd
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
函数getResult(){
var startDate=document.getElementById('dat').value;//从日期获取
if(document.getElementById('slct')。值==“10”){
var endDate=document.getElementById('todate')。value=formatDate(addDates(startDate,10));
}
else if(document.getElementById('slct')。值==“30”){
var endDate=document.getElementById('todate')。value=formatDate(addDates(startDate,30));
}
else if(document.getElementById('slct')。value==“60”){
var endDate=document.getElementById('todate')。value=formatDate(addDates(startDate,60));
}
}
//添加天数的函数https://stackoverflow.com/a/19691491/5612132
函数addDays(日期,天){
var结果=新日期(日期);
result.setDate(result.getDate()+天);
返回结果;
}
//格式日期https://stackoverflow.com/questions/23593052/format-javascript-date-to-yyyy-mm-dd
函数格式日期(日期){
var d=新日期(日期),
月份=“”+(d.getMonth()+1),
日期=“”+d.getDate(),
year=d.getFullYear();
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
返回[年、月、日]。加入('-');
}
我在这里找到了一些函数,用于添加日期和格式化日期