>  기사  >  웹 프론트엔드  >  그런데 JS 작업 날짜는 지난주와 다음주 함수_시간과 날짜를 구현합니다.

그런데 JS 작업 날짜는 지난주와 다음주 함수_시간과 날짜를 구현합니다.

WBOY
WBOY원래의
2016-05-16 18:43:481337검색

오늘 일하는 학생이 저에게 도움을 요청했습니다.
1. 페이지가 로드되면 현재 날짜가 한 곳에 표시되며 왼쪽과 오른쪽에 각각 지난주와 다음주를 나타내는 화살표가 표시됩니다.
아래 표는 월요일부터 일요일까지의 요일을 표시합니다
2. 왼쪽 및 오른쪽 화살표를 클릭하면 해당 위치에 지난 주 또는 다음 주의 오늘 날짜가 표시되고 아래 표가 표시됩니다. 지난 주 또는 다음 주의 각 날짜를 표시합니다

JS 자체에서는 날짜 덧셈 및 뺄셈 기능을 제공하지 않으므로 주로 날짜 덧셈 및 뺄셈을 중심으로 날짜를 조작하는 여러 가지 방법을 작성했습니다.
저자: Chenzhou 투오지 런원민

jsDate.htm


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다
]<script> var currDT; var aryDay = new Array("日","一","二","三","四","五","六"); //初始页面 function ini() { currDT = new Date(); showDate(); } //上一周 或 下一周 function addWeek(ope) { var num = 0; if(ope=="-") { num = -7; } else if(ope=="+") { num = 7; } currDT = addDate(currDT,num); showDate(); } function showDate() { span1.innerHTML = currDT.toLocaleDateString(); //显示日期 var dw = currDT.getDay(); var tdDT; //确定周一是那天 if(dw==0) { tdDT = addDate(currDT,-6); } else { tdDT = addDate(currDT,(1-dw)); } //在表格中显示一周的日期 var objTB = document.getElementById("tb1"); for(var i=0;i<7;i++) { if(tdDT.toLocaleDateString()==currDT.toLocaleDateString()) { objTB.rows[0].cells[i].style.color = "red"; //currDT突出显示 } dw = tdDT.getDay(); objTB.rows[0].cells[i].innerHTML = tdDT.getMonth()+1 + "月" + tdDT.getDate() + "日 星期" + aryDay[dw]; tdDT = addDate(tdDT,1); //下一天 } } //增加或减少若干天,由 num 的正负决定,正为加,负为减 function addDate(dt,num) { var ope = "+"; if(num<0) { ope = "-"; } var reDT = dt; for(var i=0;i<Math.abs(num);i++) { reDT = addOneDay(reDT,ope); } return reDT; } //增加或减少一天,由ope决定, + 为加,- 为减,否则不动 function addOneDay(dt,ope) { var num = 0; if(ope=="-") { num = -1; } else if(ope=="+") { num = 1; } var y = dt.getYear(); var m = dt.getMonth(); var lastDay = getLastDay(y,m); var d = dt.getDate(); d += num; if(d<1) { m--; if(m<0) { y--; m = 11; } d = getLastDay(y,m); } else if(d>lastDay) { m++; if(m>11) { y++; m = 0; } d = 1; } var reDT = new Date(); reDT.setYear(y); reDT.setMonth(m); reDT.setDate(d); return reDT; } //是否为闰年 function isLeapYear(y) { var isLeap = false; if(y%4==0 && y%100!=0 || y%400==0) { isLeap = true; } return isLeap; } //每月最后一天 function getLastDay(y,m) { var lastDay = 28; m++; if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) { lastDay = 31; } else if(m==4 || m==6 || m==9 || m==11) { lastDay = 30; } else if(isLeapYear(y)==true) { lastDay = 29; } return lastDay; } </script>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.