var s = "2008-2"; var a =s.split("-"); y = parseInt(a[0],10); m = parseInt(a[1],10);dt = new Date(y, m-1, 1); switch(dt.getDay()){ case 0: w = "星期日";break; case 1: w = "星期一";break; case 2: w = "星期二";break; case 3: w = "星期三";break; case 4: w = "星期四";break; case 5: w = "星期五";break; case 6: w = "星期六";break; } alert(s + "月1日" + w); dt = new Date(y, m, 0); alert(s + "月共" + dt.getDate() + "天")
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>表格属性的操作</title> </head> <body> <script language="javascript" type="text/javascript"> //问题1 var d=new Date(); var xMonth=1; //根据需要修改指定定不同的月份 d.setMonth(xMonth-1); var e=d.toString().split(" ")[0]; alert(xMonth+" 月第一天是星期 "+e);<!--HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH-->//问题2 var dt1,dt2 var chkMonth=5; //根据需要修改 var dayTime=24*60*60*1000; if (chkMonth<0) chkMonth=1; if (chkMonth>12) chkMonth=12; dt1=new Date(); dt2=new Date(); dt1.setMonth(chkMonth-1); dt1.setDate(0); dt1.setHours(0); dt1.setMinutes(0); dt1.setSeconds(0); dt1.setMilliseconds(0);dt2.setMonth(chkMonth); dt2.setDate(0); dt2.setHours(0); dt2.setMinutes(0); dt2.setSeconds(0); dt2.setMilliseconds(0); var dTime=dt2-dt1; var days=Math.floor(dTime/dayTime); alert(chkMonth+" 月共有 "+days+" 天"); </script> </body> </html>
谢谢,hookee。 麻烦hookee帮我解释一下,可以嘛?
//问题1 var d=new Date(); var xMonth=1; //根据需要修改指定定不同的月份 d.setMonth(xMonth-1); d.setDate(0); var e=d.toString().split(" ")[0]; alert(xMonth+" 月第一天是星期 "+e); 问题1 少了一个设置,见红色部分,其他的没问题,可以是任意的年月日
dt = new Date(y, m, 0); 第三个参数的意思就是上个月的月末 - -!
取得第一天 Date(年,月.日)中日期的月份是0-11,所以2月份的话,参数是1 dt = new Date(y, m-1, 1); 取得2008-2-1的日期 用dt.getDaty()取该日期的星期,取值范围是0-6,分别对应 周日到周六 ------------ 取天数 算法是取得下个月的第一天,减去一天就是本月的最后一天,取其日期就是天数了 dt = new Date(y, m, 1); 是下个月第一天 dt = new Date(y, m-1, 1-1); 就是本月的最后一天(天数-1) dt.getDate()取得日期,就是天数了
var s = "2008-2";
var a =s.split("-");
y = parseInt(a[0],10);
m = parseInt(a[1],10);dt = new Date(y, m-1, 1);
switch(dt.getDay()){
case 0: w = "星期日";break;
case 1: w = "星期一";break;
case 2: w = "星期二";break;
case 3: w = "星期三";break;
case 4: w = "星期四";break;
case 5: w = "星期五";break;
case 6: w = "星期六";break;
}
alert(s + "月1日" + w);
dt = new Date(y, m, 0);
alert(s + "月共" + dt.getDate() + "天")
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>表格属性的操作</title>
</head>
<body>
<script language="javascript" type="text/javascript">
//问题1
var d=new Date();
var xMonth=1; //根据需要修改指定定不同的月份
d.setMonth(xMonth-1);
var e=d.toString().split(" ")[0];
alert(xMonth+" 月第一天是星期 "+e);<!--HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH-->//问题2
var dt1,dt2
var chkMonth=5; //根据需要修改
var dayTime=24*60*60*1000;
if (chkMonth<0) chkMonth=1;
if (chkMonth>12) chkMonth=12;
dt1=new Date();
dt2=new Date();
dt1.setMonth(chkMonth-1);
dt1.setDate(0);
dt1.setHours(0);
dt1.setMinutes(0);
dt1.setSeconds(0);
dt1.setMilliseconds(0);dt2.setMonth(chkMonth);
dt2.setDate(0);
dt2.setHours(0);
dt2.setMinutes(0);
dt2.setSeconds(0);
dt2.setMilliseconds(0);
var dTime=dt2-dt1;
var days=Math.floor(dTime/dayTime);
alert(chkMonth+" 月共有 "+days+" 天");
</script>
</body>
</html>
麻烦hookee帮我解释一下,可以嘛?
var d=new Date();
var xMonth=1; //根据需要修改指定定不同的月份
d.setMonth(xMonth-1);
d.setDate(0);
var e=d.toString().split(" ")[0];
alert(xMonth+" 月第一天是星期 "+e);
问题1 少了一个设置,见红色部分,其他的没问题,可以是任意的年月日
第三个参数的意思就是上个月的月末
- -!
Date(年,月.日)中日期的月份是0-11,所以2月份的话,参数是1
dt = new Date(y, m-1, 1); 取得2008-2-1的日期
用dt.getDaty()取该日期的星期,取值范围是0-6,分别对应 周日到周六
------------
取天数
算法是取得下个月的第一天,减去一天就是本月的最后一天,取其日期就是天数了
dt = new Date(y, m, 1); 是下个月第一天
dt = new Date(y, m-1, 1-1); 就是本月的最后一天(天数-1)
dt.getDate()取得日期,就是天数了
dt = new Date(y, m-1, 1-1); 就是本月的最后一天(天数-1)
根据1楼代码结果,我总有点感觉结果应该是 m-1 月份的前一天,也就是 (m-1)-1 月份的最后一天;是不是啊?!!