日期时我有一个逻辑问题。
Date:<input id="txtDate" type="text" />
<input type="button" onclick="getdate()" value="Fill Follow Date" />
Follow Date:<input id="follow_Date" type="text" />
添加脚本
$(document).ready(function () {
$('#txtDate').datepicker();
$('#follow_Date').datepicker();
});
function getdate() {
var tt = document.getElementById('txtDate').value;
var date = new Date(tt);
var newdate = new Date(date);
newdate.setDate(newdate.getDate());
var dd = newdate.getDate()+1;
var mm = newdate.getMonth()+1;
var y = newdate.getFullYear();
var someFormattedDate = dd + '-' + mm + '-' + y;
document.getElementById('follow_Date').value = someFormattedDate;
}
今天&#34; 31-03-2016&#34;以下日期显示&#34; 32-03-2016&#34;。但它显示了01-04-2016。你有任何其他逻辑来克服这个错误。 我们有像#34; makemytrips&#34;酒店页面。 makemytrip.com/hotels在这里你可以看到nigths的数量。我用于我网站的相同概念
答案 0 :(得分:1)
您没有添加日期,而是添加数字。 getDate()
返回字符串数字值31
,如果你加1,你将获得32
,这是错误的,然后你正在做一个字符串连接导致问题。
相反,您可以使用datepicker和Date apis
$(document).ready(function() {
var $date = $('#txtDate').datepicker();
var $follow = $('#follow_Date').datepicker();
$('#fill-follow').click(function() {
var date = $date.datepicker('getDate');
if (date) {
date.setDate(date.getDate() + 1);
//date.setMonth(date.getMonth() + 1);
$follow.datepicker('setDate', date)
}
});
});
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/redmond/jquery-ui.css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>
Date:
<input id="txtDate" type="text" />
<input type="button" id="fill-follow" value="Fill Follow Date" />Follow Date:
<input id="follow_Date" type="text" />
答案 1 :(得分:0)
您需要在getDate()
结果中添加1,然后在其上调用setDate()
:
function getdate() {
var tt = document.getElementById('txtDate').value;
var date = new Date(tt);
var newdate = new Date(date);
newdate.setDate(newdate.getDate() + 1);
var dd = newdate.getDate();
var mm = newdate.getMonth() + 1;
var y = newdate.getFullYear();
var someFormattedDate = dd + '-' + mm + '-' + y;
document.getElementById('follow_Date').value = someFormattedDate;
}
另外,阅读你的代码,我想知道你为什么要创建两次日期:
var date = new Date(tt);
var newdate = new Date(date);
你不能将这些组合成一行吗?
var newdate = new Date(tt);
答案 2 :(得分:0)
使用下面的逻辑
var someDate = new Date();
var numberOfDaysToAdd = 6;
someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
格式化日期:
var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();
var someFormattedDate = dd + '/'+ mm + '/'+ y;