js实现每日签到功能的方法,js自动签到,js实现每日签到功能

js实现每日签到功能的方法,js自动签到,js实现每日签到功能

这篇文章主要为大家详细介绍了射流研究…实现每日签到功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了射流研究…实现每日签到功能的具体代码,供大家参考,具体内容如下

js:

var calUtil={

getDaysInmonth : function(iMonth,iYear){ //当前年月的总天数

var dPrevDate=new Date(iYear,iMonth,0);

返回dprevdate。getdate();

},

bulidCal : function(iYear,iMonth) { //构建当前年月对应的日历

var aMonth=new Array();

月[0]=新数组(7);

aMonth[1]=新数组(7);

aMonth[2]=新数组(7);

月[3]=新数组(7);

aMonth[4]=新数组(7);

月[5]=新数组(7);

月[6]=新数组(7);

var dCalDate=new Date(iYear,iMonth - 1,1);

var iDayOfFirst=dcaldate。getday();

var iDaysInMonth=calutil。getdaysinmonth(iMonth,iYear);

var iVarDate=1;

var d,w;

在[0][0]=之间日;

"月[0][1]="一;

"月[0][2]="二;

"月[0][3]="三;

"月[0][4]="四;

"月[0][5]="五;

"月[0][6]="六;

for(d=iDayOfFirst;D7;d ) {

aMonth[1][d]=iVarDate;

iVarDate

}

for(w=2;w 7;w ) {

for(d=0;D7;d ) {

if (iVarDate=iDaysInMonth) {

aMonth[w][d]=iVarDate;

iVarDate

}

}

}

返回一个月;

},

ifHasSigned : function(signList,day){

var有符号=false

$.每个(符号列表,函数(索引,项目){

var日期=新日期(项。签字日期);

if(date.getDate()==day) {

有符号=真;

返回错误的

}

});

已签名的退货;

},

drawCal : function(iYear,iMonth,signList) {

var currentYearMonth=iYear 年伊蒙思月;

var my month=calutil。bulid cal(iYear,iMonth);

var html s=new Array();

htmls。push( div class= sign _ main id= sign _ layer );

htmls。push( div class= sign _ succ _ calendar _ title );

htmls。push( div class= calendar _ month _ span currentYearMonth /div));

html。push(/div );

htmls。push( div class= sign id= sign _ cal );

htmls。push( table class= table );

html。push( tr );

htmls。push( th my month[0][0]/th );

htmls。push( th my month[0][1]/th );

htmls。push( th my month[0][2]/th );

htmls。push( th my month[0][3]/th );

htmls。push( th my month[0][4]/th );

htmls。push( th my month[0][5]/th );

htmls。push( th my month[0][6]/th );

html。push(/tr );

var d,w;

for(w=1;w 7;w ) {

html。push( tr );

for(d=0;D7;d ) {

var ifHasSigned=calutil。ifHasSigned(signList,my month[w][d]);

if(ifHasSigned){

htmls.push(td class=on (!isNaN(myMonth[w][d])?我的月份[w][d]: )/TD );

}否则{

html。推( TD (!isNaN(myMonth[w][d])?我的月份[w][d]: )/TD );

}

}

html。push(/tr );

}

html。推(/table );

html。push(/div );

html。push(/div );

返回html。join(" ");

}

};

页面效果代码:

style type=text/css

@媒体屏幕和(最小宽度:1024px) {。富媒体{

宽度:500像素

左边距:自动;

右边距:自动;

填充:20px

}

}

/风格

/头

body style= background-color:# fff;

div class=富媒体

div id=页面内容

div style= text-align:center;背景色:# 2FAA00高度:50px下边距:20px

span style= cursor:pointer;字体粗细:600;字体大小:20px颜色:# fff高度:50px行高:50px 每日签到/span

输入类型= hidden id= userId value= $ { user。id } /

/div

div class=容器流体

div class= row-fluid id= calendar

/div

div id= BTN div style= display:none;

div class=" row-fluid text-居中"

BTN BTN-默认签到/span

/div

/div

/div

/div

/div

/body

射流研究…调用方法

var str=cal util . draw cal(current . get full year(),current.getMonth() 1,sign list);

$(#calendar )。html(str);

注意:signList是后台查询的入住时间集合。传入js方法时,会判断哪一天已经入住,然后改变入住日的显示效果,如上图!

这个签到页面也适合手机浏览器!

提要:

以在当前时间环境下编写当月日历为例,用最简单的方法实现JavaScript日历,旨在展示JS世界中实用简单的解决思路。

一般来说,网页中的日历不能与表格分开,表格通常用于加载指定月份的日期等信息。所以,要写JS日历,首先必须解决的问题就是表格的行和列。列是固定的,七列,因为一周有七天。行需要动态计算,因为每个月的第一天是一周中的哪一天是一个变量,所以第一天表中的单元格数会相应变化。同时,各月总天数的不一致也会影响各月对行的需求。

一. 表格的行数问题

1.首先获取处理月份的总天数。

JS不提供这个参数,我们需要计算。考虑到闰年问题会影响二月的天数,我们先自己写一个判断闰年的函数:

函数是_闰年{

返回(year0==0?res=(year@0==0?1:0):res=(year%4==0?1:0));

}

然后定义一个包括十二个月在内的一个月的总天数数组:

m_days=new Array(31,28 is_leap(ynow),31,30,31,31,30,31,30,31,31,30,31,30,31);

在这个m_days数组中,添加了闰年信息:28 is_leap(ynow)。数组元素从0开始,正好对应JS提供的Date函数提供的getMonth的返回值,即0代表一月,1代表二月,2代表三月,以此类推。

这样每月的总数可以得到如下:m_days[x]。其中x是从0到11的自然数。

2.计算处理月份的第一天是星期几。

可以使用Date函数的getDay获得,返回值从0到6,0代表星期一,1代表星期二,2代表星期三,以此类推。代码如下(假设处理时间为2008年3月):

n1str=新日期(2008,3,1);

first day=n1str . getday();

有了两个已知条件:一个月中的总天数和一周中的第一天,就可以解决表中所需行数的问题:(当月第一天一周中的第一天的值)除以7。表需要整数,所以我们使用Math.ceil来处理它们:

tr _ str=math . ceil((m _ days[mnow]first day)/7);

表中的tr标签实际上代表了表的行,所以变量tr_str是我们写表的重要依据。

二. 打印日历表格

可以通过嵌套两个for语句来实现:外层的for语句写行,内层的for语句写单元格。

for(I=0;itr _ strI) {//外部for语句-tr标记

document . write( tr );

for(k=0;k7;K) {//inner for语句-td标记

idx=I * 7k;//表格单元格的自然序号

date _ str=idx-first day 1;//计算日期

//这里是处理生效日期代码。

}//for语句内部的结尾

document . write(/tr );

}//语句外层的结尾

单元格的自然序号是否代表生效日期很关键,所以必须增加一个过滤机制:只打印生效日期。的生效日期大于0且小于或等于处理月份的总天数。

三. 以下是完整的JS日历代码:

函数是_闰年{

返回(year0==0?res=(year@0==0?1:0):res=(year%4==0?1:0));

}//是闰年吗?

var nstr=new Date();//当前日期信息

var ynow=nstr . get full year();//年份

var mnow=nstr . getmonth();//月份

var dnow=nstr . getdate();//今天的日期

var n1str=新日期(ynow,mnow,1);//当月第一天的日期信息

var first day=n1str . getday();//这个月的第一天是星期几?

var m_days=new Array(31,28 is_leap(ynow),31,30,31,30,31,31,30,31,30,31,30,31);//每个月的总天数

var tr _ str=math . ceil((m _ days[mnow]first day)/7);//表格所需的行数

//打印表单的第一行(标有星期)

document . write( table border= 1 align= center width= 220 cellspacing= 0 trtdalign= center day/tdtd align= center one/tdtdtdtdalign= center two/tdtd align= center this/tdtd align= center four/tdtd align= center five/tdtd align= center six/Td/tr));

for(I=0;itr _ strI) {//表格的行

document . write( tr );

for(k=0;k7;K) {//表格每一行中的单元格

idx=I * 7k;//单元格的自然序号

date _ str=idx-first day 1;//计算日期

(date _ str=0 | | date _ strm _ days[mnow])?date _ str= nbsp:date _ str=idx-first day 1;//筛选无效日期(小于或等于零且大于一个月的总天数)

//打印日期:今天的背景色是红色。

date_str==dnow?document . write( TD align= center bgcolor= red date _ str /TD ):document . write( TD align= center date _ str /TD );

}

document . write(/tr );//表格行的结尾

}

document . write(/table );//表的结尾

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

js实现每日签到功能的方法,js自动签到,js实现每日签到功能