javascript - 如果是周末则更改日期的功能

标签 javascript date weekend

我已经完成了一个功能,如果是周末则更改日期,但不是给我第二天,而是给我 day+1 例如,我输入了 31-09-2012,这是最后一个星期天。

我有我的功能

<script type="text/javascript">
    function getdate2() {
        var items = new Array();
        var itemCount = document.getElementsByClassName("datepicker hasDatepicker");

        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() < 9 ? "0" : "")+ (itemDt.getDate()+2)+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();


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

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


            }

        }
       return items;
       }
</script>

但是它没有给我第一个 10 月,而是给了我不存在的 31-09-2012。

真不知道怎么处理。

最佳答案

您需要将每个月的最大天数存储在数组中。

var dayspermonth = new array(31,28,31,30,31,30,31,31,30,31,30,31);

最好在单独的函数中执行:

function int lastDay(d, m){
    var result = d
    var dayspermonth = new array(31,28,31,30,31,30,31,31,30,31,30,31);
    if(d > dayspermonth[m]){
        d=1;
    }
    return d;
}

然后你只需要做(例如):

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

编辑: 如果发生这种情况,您需要将月份增加 1。如果旧日期为 31-12-YYYY,则需要将年份加 1 并将月份设置为 1

关于javascript - 如果是周末则更改日期的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673681/

相关文章:

javascript - 删除确认对话框仅适用于表中的第一行

mysql - 从销售查询中删除 00 :00:00. 000 MYSQL

javascript - 在 Angular/Javascript 中确定一个日期是否在周末

c# - 将时间添加到日期时间,但排除周末,并且应该在工作时间之间

c# - SignalR 客户端未定义

javascript - 传递给 jQuery 函数的选择器

java - SimpleDateFormat 和解析 : parse doesn't fail with wrong input string date

java - Grails Date 构造函数和解析日期

jquery - 从日期字段(mm/dd/yyyy)中减去天数,不包括周末jquery

javascript - 如何在 Javascript 中动态创建供下载的文档?