我已经完成了一个功能,如果它是一个周末就更改日期但是第二天它没有给我我做的一天+ 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>
但是没有给我第一个十月,它给了我31-09-2012不存在。
我真的不知道如何处理。
答案 0 :(得分:1)
您需要在数组中存储每月的最大天数。
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答案 1 :(得分:1)
答案 2 :(得分:0)
2012/07/25 - 周六。代码检查是否为星期六 - 添加2天,如果是星期日 - 添加1天 http://jsfiddle.net/S3Q4P/
var mydate=new Date(2012,07,25)
if(mydate.getDay() == 6) //Saturday
mydate =new Date(mydate.getFullYear(),mydate.getMonth(),mydate.getDate()+2)
else if (mydate.getDay() == 0) //Sunday
mydate =new Date(mydate.getFullYear(),mydate.getMonth(),mydate.getDate()+1)