-1

如果是周末到星期一,我正在尝试更改日期,但是当我尝试继续时它不起作用。我非常喜欢 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>  

但它向我显示了一些错误。我不知道该怎么做。

4

1 回答 1

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;
}

这是一个演示

于 2012-08-28T13:23:45.137 回答