asp判断月份

baijingssg 2007-06-20 04:21:11
就是当用户选择了一个 月份 后,在另外一个选择 day的 下拉列表框中 会出现这个月对应的天数,说白了就是算每个月有多少天,我看到了这样一段代码,但是不知道怎么用,贴出来给大家看看
function get_month(dt)
get_month=datediff("d",dateadd("m",-1,dateadd("m",1,dt)),dateadd("m",1,dt))
end function
...全文
425 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tvruuiqpl1314520 2007-06-21
  • 打赏
  • 举报
回复
这个比较好用
tvruuiqpl1314520 2007-06-21
  • 打赏
  • 举报
回复
<script language="JavaScript">
function initDate() {
var nn=new Date();
var obj=document.all['form1'];
var y=obj.year;
var m=obj.month;
var d=obj.date;
for (var i=1900;i<2030;i++) {
y.options.length=y.options.length+1;
y.options[y.options.length-1].text=y[y.options.length-1].value=i;
}

y.value=nn.getYear();
for (var i=0;i<12;i++) {
m.options.length=i+1;
m[i].value=i+1;
if (i<9) {
m.options[i].text="0"+(i+1);
} else {
m.options[i].text=i+1;
}
}
m.value=nn.getMonth()+1;
for (var i=0;i<30;i++) {
d.options.length=i+1;
d[i].value=i+1;
if (i<9) {
d.options[i].text="0"+(i+1);
} else {
d.options[i].text=i+1;
}
}
d.value=nn.getDate();
}
function setDate(obj) {
var y=obj.year.value;
var m=obj.month.value;
var d=obj.date;
var arrd=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if (y%4==0) arrd[1]=29;
var md=arrd[m-1];
if (d.options.length>md) {
var index=d.value;
d.options.length=md;
if (index<md) {
d.value=index;
} else {
d.value=md;
}
}
if (d.options.length<md) {
for (var i=d.options.length;i<md;i++) {
d.options.length=d.options.length+1;
d[i].value=d.options[i].text=i+1;
}
}
}
</script>
xiugege 2007-06-21
  • 打赏
  • 举报
回复
同意楼上的写法
hookee 2007-06-21
  • 打赏
  • 举报
回复
<html>
<script>
function getDays(){
y = parseInt(document.form1.year.options[document.form1.year.selectedIndex].value);
m = parseInt(document.form1.month.options[document.form1.month.selectedIndex].value)-1;
dt = new Date(y, m, 1);
dtn = new Date(y, m+1, 1);
days = (dtn.getTime() - dt.getTime()) / (24*60*60*1000);
s = "<select>"
for(i=1;i<=days;i++) s += "<option value='" + i + "'>" + i + "</option>"
s+="</select>"
document.getElementById("day_pad").innerHTML = s;
}
</script>
<body>
<form name="form1">
<select name="year" onchange="getDays();">
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>年
<select name="month" onchange="getDays();">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>月
<span id="day_pad"><select name="day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select></span>日
</form>
</body></html>
baijingssg 2007-06-20
  • 打赏
  • 举报
回复
不对啊,没反映啊
hookee 2007-06-20
  • 打赏
  • 举报
回复
用我的方法取得的就是正确的月份呀
y = parseInt(document.formname.selectyear.options[document.formname.selectyear.selectedIndex].value);
m = parseInt(document.formname.selectmonth.options[document.formname.selectmonth.selectedIndex].value)-1;
dt = new Date(y, m, 1); //取本月的1日
dtn = new Date(y, m+1, 1); //取下月的1日
days = (dtn.getTime() - dt.getTime()) / (24*60*60*1000); //相减取得本月的天数
//第三个select根据days自动产生
s = "<select>"
for(i=1;i<=days;i++) s += "<option value='" + i + "'>" + i + "</option>"
s+="</select>"
document.getElementById("div_id").innerHTML = s;

<div id="div_id"></div>


baijingssg 2007-06-20
  • 打赏
  • 举报
回复
有没有其他方法,我做的相当与是一个下拉菜单联动那种类型的,既在第一个下拉列表中选择年份,在第2个下拉列表中选择月,然后第3个下拉菜单是 日,但是第3个里面的值是靠前面两个来判断的,因为有大月和小月之分,而且2月份还是特殊月份
hookee 2007-06-20
  • 打赏
  • 举报
回复
这个是VBS函数,客户端代码最好也要用VBS。
如果是JS

s = "2006-1-1";
a = split("-");
y = parseInt(a[0]);
m = parseInt(a[1])-1;

dt = new Date(y, m, 1);
dtn = new Date(y, m+1, 1);
days = (dtn.getTime() - dt.getTime()) / (24*60*60*1000);

liooon 2007-06-20
  • 打赏
  • 举报
回复
DateAdd 函数
返回已添加指定时间间隔的日期。

DateAdd(interval, number, date)

参数
interval

必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。

number

必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。

date

必选项。Variant 或要添加 interval 的表示日期的文字。

liooon 2007-06-20
  • 打赏
  • 举报
回复
DateDiff 函数
返回两个日期之间的时间间隔。

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

DateDiff 函数的语法有以下参数:

参数
interval

必选项。String expression 表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。

date1, date2

必选项。日期表达式。用于计算的两个日期。

Firstdayofweek

可选项。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。

Firstweekofyear

可选项。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。
hookee 2007-06-20
  • 打赏
  • 举报
回复
dt = Now '取日期
days = get_month(dt) '取天数
参数dt是日期类型的即可

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧