我设计了一段代码,它显示基于用户选择的选择日期的结束日期。我使用 JavaScript 中的新 Date() 函数进行了尝试,效果非常好。但是,当我尝试使用用户选择的日期(我已将其转换为与 Javascript 中相同的格式)时,日期不会按应有的方式显示。
这里的代码:
<script>
$('#dSuggest').on("input", function() {
var dInput = this.value;
var Month = dInput.substring(5, 7);
var Date = dInput.substring(8, 10);
var Year = dInput.substring(0, 4);
var ProperDate = Month+"/"+Date+"/"+Year;
console.log(dInput);
$('#output').text(ProperDate);
//var someDate = new Date(ProperDate);
var StartDate = new Date();
var StartDate = StartDate.toLocaleDateString();
if(StartDate > '1/31/2016' ){
var numberOfDaysToAdd = 365;
ProperDate.setDate(ProperDate.getDate() + numberOfDaysToAdd);
//var someDate = ProperDate.toLocaleDateString();
} else {
var n = someDate.getDate();
var numberOfDaysToAdd = n;
ProperDate.setDate(ProperDate.getDate() - numberOfDaysToAdd);
//var someDate = someDate.toLocaleDateString();
}
document.getElementById("demo").innerHTML = someDate;
});
</script>
最佳答案
基本上你正在做
var ProperDate = Month+"/"+Date+"/"+Year;
ProperDate.setDate(ProperDate.getDate() + numberOfDaysToAdd);
但是ProperDate
不是一个日期对象,它是一个字符串,如果你想使用日期方法,你应该创建一个日期对象,而不是字符串
$('#dSuggest').on("input", function() {
var dInput = this.value;
var Month = dInput.substring(5, 7);
var Date = dInput.substring(8, 10);
var Year = dInput.substring(0, 4);
var ProperDate = new Date(Year, Month-1, Date);
var endDate = new Date(2016, 0, 31);
$('#output').text(Month + "/" + Date + "/" + Year;);
var StartDate = new Date();
if (StartDate > endDate) {
var numberOfDaysToAdd = 365;
} else {
var numberOfDaysToAdd = n;
}
ProperDate.setDate(ProperDate.getDate() + numberOfDaysToAdd);
document.getElementById("demo").innerHTML = properDate;
});
关于javascript - 日期函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35084716/