-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 に答える