我有一个日期对象,我根据用户从下拉日历中选择的值进行设置。我想为所选的一个添加3天。除了 12月之外,它在所有月份都能正常运行。如果我从12月开始选择特定日期并添加3天,则返回的月份值为" 00 "而不是" 12 "。
这是我的代码。
var dateinput= document.getElementById("date_picker").value;
console.log(dateinput);
var timeinput= document.getElementById("time_picker").value;
var dateobj = dateinput + ' ' +timeinput;
var parts = dateobj.split(/[-\s:]/);
var date = new Date(parts[0],parts[1],parts[2],parts[3],parts[4]);
console.log(parts[1])
date.setDate( date.getDate() + 3);
console.log(date)
var dateobj2 = [date.getMonth(), date.getDate(), date.getFullYear()].map(pad).join('/') +
' ' + [date.getHours(),date.getMinutes()].map(pad).join(':');
答案 0 :(得分:1)
以下代码输出http://prntscr.com/ddyjy3
<!doctype html>
<html>
<head>
<title>Date Demo</title>
<style>
ol {
display: inline-block;
list-style-type: none;
}
li {
display: block;
border: 1px solid green;
padding: 5px;
}
</style>
</head>
<body>
<ul id="demo"></ul>
<script>
// set start date from your date picker
// set daysToAdd to 3 to return next 3days from the selected date
function showDates(startDate, daysToAdd) {
var aryDates = [];
for (var i = 0; i < daysToAdd; i++) {
var currentDate = new Date();
currentDate.setDate(startDate.getDate() + i);
var fullDate = currentDate.getDate() + "/" + (currentDate.getMonth() + 1) + "/" + currentDate.getFullYear();
aryDates.push('<li class="pick-date" data-date="' + fullDate + '"> ' + currentDate.getDate() + ' <span class="day">' + DayAsString(currentDate.getDay()) + '</span> ('+ fullDate +')</li>');
}
return aryDates;
}
function DayAsString(dayIndex) {
var weekdays = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
return weekdays[dayIndex];
}
var startDate = new Date();// document.getElementById('date_picker').value
var aryDates = showDates(startDate, 7);
document.getElementById("demo").innerHTML = aryDates.join(" ");
</script>
</body>
</html>
答案 1 :(得分:1)
基本上,月份将从11 (Dec)
开始到12
。因此,当用户在12月输入new Date(year, month, day, hours, minutes, seconds, milliseconds)
时,应将其减去1,以便在将组件分配到var date = new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4]);
时获得11。
所以你的代码将成为,
function getDate() {
var dateinput= document.getElementById("date_picker").value;
var timeinput= document.getElementById("time_picker").value;
var dateobj = dateinput + ' ' +timeinput;
var parts = dateobj.split(/[-\s:]/);
var date = new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4]);
date.setDate( date.getDate() + 3);
console.log(date);
}
您可以查看以下代码段
<input type="date" id="date_picker" />
<input type="text" id="time_picker" />
<input type="button" value="Get Date" onclick="getDate()" />
<br/>
&#13;
JSON
&#13;