当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JS getMonth()日期函数的值域是0-11

Javascript
javascript动画效果类封装代码
javascript关于复选框的实用脚本代码
javascript使用Dom改变超链接前面文本框的值
javascript select列表内容按字母倒序排序与按列表倒序排列
(兼容ff/ie)td点击背景变色特效
javascript跟随滚动条滚动的层(浮动AD效果)
javascript按指定格式输出文件最后更新时间
javascript实现的一个自定义长度的文本自动换行的函数。
javascript模仿百万格子小的一小段代码
兼容FireFox 用javascript写的一个画图函数
javascript写的一个表单动态输入提示的代码
不错的用resizeTo和moveTo两个函数实现窗口的“打乒乓球”效果
javascript一个判断浏览器类型的函数(类)
不错的用外部Javascript修正特定网页内容
找到了一篇jQuery与Prototype并存的冲突的解决方法
070823更新的一个[消息提示框]组件 兼容ie7
错误剖析之JavaScript的9个陷阱及评点
推荐一些非常不错的javascript学习资源站点
出现“不能执行已释放的Script代码”错误的原因及解决办法
给Javascript数组插入一条记录的代码

Javascript 中的 JS getMonth()日期函数的值域是0-11


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 425 ::
收藏到网摘: n/a

好久没用JS写代码了,结果在计算日期时,出现了一个问题,困扰了我半天。最后终于搞清了问题的根源。 我选择月份列表项后,获得年份值和月份值,计算获得当月1号日期值和当月最后一天的日期值。
正确代码如下:
复制代码 代码如下:

<script language="javascript">
function selDate(y, m)
{
//输出当月1号字符串
document.form1.startDT.value=y+"-"+m+"-1";
//计算下个月的年份(y)、月份值(m)
if(m==12)
{
y++;
m=1;
}
else
{
m++;
}
//生成下个月1日的Date值
var dt=new Date(y, m-1, 1); //月份值0--11
//一天差值=86400000,将下月1日转换成数值,再相减,得上月最后一天Date值
var n=Date.parse(dt);
n -= 86400000;
var dt1=new Date(n);
//输出当月最后一天日期字符串
document.form1.stopDT.value=dt1.getYear()+"-"+(dt1.getMonth()+1)+"-"+dt1.getDate();
}
</script>

开始我将“var dt=new Date(y, m-1, 1);”写成了“var dt=new Date(y, m, 1);”。而最后一句“dt1.getMonth()”没有加1。结果可想而知,明明是“2010-2-28”,输出的却是“2010-1-28”,而“2010-1-31”输出却是“2010-0-31”。
刚开始感觉莫名其妙,多试了,就找到了错误规律,发现月份值域是“0-11”而不是“1-12”。
希望下次过段时间没用JS后,本文能提醒我。