【JS新手教程】JS获取当前星期几的几种方法
该文通过获取星期几的几种方法,介绍JS里的数组,判断,和字符串截取,可以当作新手教程看,小白也看的懂。
获取星期几,可通过Date()对象的getDay()获取,获取的是一个数字,对应的是0,1,2,3,4,5,6。
0代表的是星期天,后面6个自然数,代码该星期,如1代表星期一,6代表星期六。
描述:(代码见描述后面)
第一个方法:定义一个数组,然后取某一个数组的值。
JS中定义一个带初始值的数组的写法,可以这么写 var 数组名=new Array(第一个数值,第二个数值.......);
获取数值中的某个值的方法,就是 数组名[需要取的数值的索引],索引是从0开始的,往后0,1,2,3,4,5.......
例如:数组名[0]就是取该数组的第一个数值,数组名[1]就是取该数组的第二个数值。
getDay()获取的是0123456这样的,所以可以直接对应下标设置,数组的第一个就是数组名[0]星期天,数组名[1]是星期一,("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")。这样直接用getDay()的值做下标就可以了,不需要对该值进行加减什么的处理,直接对应。
第二个方法:JS中的判断if else if方法。
JS中的判断方法,if(条件成立)执行某段代码,else if(前面的条件不成立,这个条件成立)执行这段代码.......
如下面的代码,可以这样用人的语言描述:
,判断day这个变量的值是否是0,那么给wstr这个变量赋值为‘星期日’。
否则,就再判断是否是1,如果是1,那么给wstr这个变量赋值为‘星期一。
如果不是,再判断.......
如此,不断判断。当判断某个条件成立时,才不再继续走else支线判断。
最少判断一次,就是等于0的时候,直接等于星期日,不再走支线;最多会判断7次,前面判断都不成立,走的额else支线,直到最后等于6,赋值星期六。
第三个方法:JS中的switch case方法。
JS中的判断方法,switch(某个值)case(值1):执行的语句;break...........
这个和第二个差不多,都是判断后使用哪个,这个可以看做直接对应,case中和switch中的值一致,就会走该case里的执行的语句,break跳出这个判断。
例如,该文中的方法,day的值可能为0,1,2,3,4,5,6,然后把所有可能的值分别写出对应的case,按值对应执行哪个语句。
第四种方法:JS中的charAt()方法,截取某个字符。
格式是:需要截取的字符串.charAt(索引)。
如上所说,计算机语言中的索引都是从0开始的,例如,该文中方法,"日一二三四五六"就是一个字符串,有七个字符,索引从0开始,到6,由于day是0到6,所以可以直接用day本身的值作为下标,把需要的字符逐个按照下标排序。
这样就能取到当前星期的数字,前面加上字符“星期”,组成星期一。
注意:在JS中 ,没有字符型数据,只有字符串型的,逐个截取后的实际是长度为1的字符串,也就是一个字符的字符串,但是它是字符串类型的,记得在C#等中,字符型和字符串是不同的类型。
代码
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> 输入寄出地址 <input type="text" id="T1" size="15"><br> 输入收货地址 <input type="text" id="T2" size="15"><br> <a href="javascript:prn1_preview()">打印预览</a><br> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function RetnW() {//JS的数组 var date=new Date(); var day=date.getDay(); var weeks=new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); var week=weeks[day]; return week } function RetnWF2() {//JS判断的if elseif方法 var wstr=""; var date=new Date(); var day=date.getDay(); if (day==0){wstr="星期日";} else if(day==1){wstr="星期一";} else if(day==2){wstr="星期二";} else if(day==3){wstr="星期三";} else if(day==4){wstr="星期四";} else if(day==5){wstr="星期五";} else if(day==6){wstr="星期六";} return wstr; } function RetnWF3() {//JS判断的switch方法 var wstr=""; var date=new Date(); var day=date.getDay(); switch (day) { case 0:wstr="星期日";break; case 1:wstr="星期一";break; case 2:wstr="星期二";break; case 3:wstr="星期三";break; case 4:wstr="星期四";break; case 5:wstr="星期五";break; case 6:wstr="星期六";break; } return wstr; } function RetnWF4() {//JS判断的字符串截取方法 var date=new Date(); var day=date.getDay(); var wstr="星期"+"日一二三四五六".charAt(day); //var wstr="星期"+"日一二三四五六".charAt(new Date().getDay()); return wstr } function prn1_preview() { LODOP=getLodop(); var W1=RetnW();var W2=RetnWF2();var W3=RetnWF3();var W4=RetnWF4(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(28,41,77,22,"寄出地址:"); LODOP.ADD_PRINT_TEXT(28,100,200,22,document.getElementById("T1").value); LODOP.ADD_PRINT_TEXT(77,41,77,22,"收货地址:"); LODOP.ADD_PRINT_TEXT(77,100,200,22,document.getElementById("T2").value); LODOP.ADD_PRINT_TEXT(111,41,410,20,"这是根据day的数值做下标,取的数组中的某个值:打印是在"+W1); LODOP.ADD_PRINT_TEXT(139,40,410,20,"这是用if 和else if判断,根据day等于哪个取的值:打印是在"+W2); LODOP.ADD_PRINT_TEXT(169,39,410,20,"这是用switch,根据daye的值,使用哪个值:打印是在"+W3); LODOP.ADD_PRINT_TEXT(200,38,410,20,"这是根据day的值,charAt截取一个字符串的某个字:打印是在"+W4); //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; </script> </body>
图示