JS getMonth()日期函数的值域是0-11
作者:bea
我选择月份列表项后,获得年份值和月份值,计算获得当月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 {
我选择月份列表项后,获得年份值和月份值,计算获得当月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后,本文能提醒我。
有用 | 无用
正确代码如下:
代码如下:
<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后,本文能提醒我。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JavaScript DOM 学习第九章 选取范围的介绍
- JavaScript DOM学习第八章 表单错误提示
- JavaScript DOM 学习第七章 表单的扩展
- JavaScript DOM 学习第五章 表单简介
- JavaScript DOM学习第四章 getElementByTagNames
- JavaScript DOM 学习第三章 内容表格
- JavaScript DOM 学习第二章 编辑文本
- javascript中的链式调用
- js删除select中重复项的实现代码
- JavaScript 题型问答有答案参考
- JavaScript 学习技巧
- JavaScript Timer实现代码
- 两个比较有用的Javascript工具函数代码
- 类似GMAIL的Ajax信息反馈显示
- JavaScript 10件让人费解的事情
- JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
- jQuery 处理表单元素的代码
- jQuery 树形结构的选择器
- jQuery 处理网页内容的实现代码