我正在尝试更改日期,如果它是周末到周一,但是当我尝试继续时它不起作用。我非常喜欢javascript。
在一些帮助下,我设法做到了:
<script type="text/javascript">
function getdate()
{
var items = new Array();
var itemCount = document.getElementsByClassName("date");
for(var i = 0; i < itemCount.length; i++)
{
items[i] = document.getElementById("date" + (i+1)).value;
}
for(var i = 0; i < itemCount.length; i++)
{
items[i] = document.getElementById("date" + (i+1)).value;
var itemDtParts = items[i].split("-");
var itemDt = new Date(itemDtParts[2], itemDtParts[1] - 1, itemDtParts[0]);
if (itemDt.getDay() == 6 || itemDt.getDay() == 0) {
alert('weekend!');
setDate(itemDt.getDate() + 2);
}
}
return items;
}
</script>
但它向我显示了一些错误。我不知道该怎么办。
答案 0 :(得分:1)
setDate()
是Date
函数。因此,您需要在Date
对象上调用它:
itemDt.setDate(itemDt.getDate() + 2);
但是,由于您需要一个字符串列表,您可以使用以下内容:
function formatDate(dt) {
var day = dt.getDate();
var month = dt.getMonth() + 1;
return [day < 10 ? "0" + day : day,
month < 10 ? "0" + month : month,
dt.getFullYear()].join('-');
}
function getdate() {
var items = [];
var itemCount = document.getElementsByClassName("date");
for (var i = 0; i < itemCount.length; i++) {
var dateValue = document.getElementById("date" + (i+1)).value;
var itemDtParts = dateValue.split("-");
var itemDt = new Date(itemDtParts[2], itemDtParts[1] - 1, itemDtParts[0]);
var day = itemDt.getDay();
itemDt.setDate(itemDt.getDate() + (day == 6 ? 2 : day == 0 ? 1 : 0));
items.push(formatDate(itemDt));
}
return items;
}
这是 DEMO 。