функция изменения даты не работает

С большой помощью я сделал функцию, которая проверяет при загрузке, является ли дата выходным или нет, и если это воскресенье, она должна увеличивать день. Если это суббота, к этому дню добавляется 2, потому что, к сожалению, во Франции никто не хочет работать в выходные дни.

Вот код, который я использую:

<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) {

                itemCount[i].value =  itemDt.getDate()+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();


            }
            if (itemDt.getDay() == 0) {

               itemCount[i].value = itemDt.getDate()+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();

            }

        }
       return items;
  }
</script>

Все отлично работает для проверки того, является ли дата выходным, но когда я задаю дату +1, она не меняется.

Я просто хотел бы изменить субботу и воскресенье на понедельник.

Спасибо за помощь

SP.


person Stanislas Piotrowski    schedule 29.08.2012    source источник
comment
Является ли эта «дата» текущим днем ​​или датой из элемента (элементов) .date или #date? Можете ли вы опубликовать (соответствующий) html или URL-адрес?   -  person Fred    schedule 29.08.2012
comment
Уважаемый сэр, вот это актуально: ‹?php while($row = mysql_fetch_assoc($qry)): ?› ‹td› ‹input type=text name=data[‹?php echo $i; ?›][date] class=date id=date‹?php echo $i; ?› value=‹?php echo date('d-m-Y',strtotime($row['date_action'])) ; ?› размер=12›‹/td›   -  person Stanislas Piotrowski    schedule 29.08.2012
comment
проблема в том, что дни меняются на понедельник, но через одну секунду после того, как вы вернетесь к своим первоначальным дням   -  person Stanislas Piotrowski    schedule 29.08.2012
comment
можете ли вы опубликовать тестовый HTML и js в jsfiddle?   -  person Fred    schedule 29.08.2012


Ответы (1)


Где вы делаете:

> var itemDt = new Date(itemDtParts[2], itemDtParts[1] - 1, itemDtParts[0]);

затем вы можете сделать что-то вроде:

// Increment date if Saturday or Sunday
var inc = itemDt.getDay() == 0? 1 : itemDt.getDay() == 6? 2 : 0;

// Only update DOM if necessary
if (inc) {
  itemDt.setDate(itemDt.getDate() + inc);
  // Update DOM
} 

Обратите внимание, что объекты Date корректируются, если дата установлена ​​после конца месяца (или до его начала), поэтому установка даты 32 января становится 1 февраля.

person RobG    schedule 29.08.2012
comment
Уважаемый сэр, я попробовал вашу функцию, но она не работает, и ошибок нет. - person Stanislas Piotrowski; 29.08.2012