本文实例讲述了JavaScript实现设置默认日期范围为最近40天的方法。分享给大家供大家参考,具体如下:

前面文章《JavaScript输出所选择起始与结束日期的方法》中的例子实现了选择日期,然后把选择的日期输出,这么一个功能。
不过实际项目中,测试人员说客户的需求是点击进入页面后,自动查询最近40天的数据。
想了想,实现的原理就是在页面加载之后,调用一个JavaScript函数设置日期,相比上一篇文章,除了修改了部分格式,还增加了onload函数。
另外,虽然把日期转为字符串可以用标准函数toLocaleString 来转换,不过日期格式不符合要求,所以增加了一个日期转换函数dateToString。
同样,该代码只能在chrome等支持HTML5的浏览器运行。
代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="charset=utf8"></meta>
<script type="text/javascript">
function query()
{
var xx = document.getElementsByName("day");
var s="";
for (var i=0;i<xx.length ;i++ )
{
if(xx[i].tagName == 'TD')
s= s + xx[i].innerText;
//alert(xx[i].innerText);
else
{
if(xx[i].tagName == 'INPUT')
s += xx[i].value;
}
if( i % 2 == 1)
s+=";";
}
var yy = document.getElementById("sp");
yy.innerHTML = s;
}
//实现把日期类型数据转化为标准的字符串格式
function dateToString(d)
{
var y= d.getFullYear();
var m= d.getMonth() + 1;
var d=d.getDate();
//把日期2017-1-6 格式化为标准的 2017-01-06
//判断数字的长度是否是1,如果是1那么前面加上字符0
if(m.toString().length == 1) m= "0" + m;
if(d.toString().length == 1) d= "0" + d;
return y+"-"+m+"-"+d;
}
//在页面加载的时候,初始化开始(40天前的日期)、结束日期(当天),实现默认查询最近40天的数据
function onload()
{
//获取今天的日期,但是这个数据的格式不标准
//也就是把 Fri Jan 06 2017 10:43:07 GMT+0800 转化成 2017-01-06 这种格式
var d = new Date();
var endDate = dateToString(d);
//返回日期的原始值,也就是自xxx年xx月xx日 到今天的日期相差的毫秒数
d = d.valueOf();
d = d - 40*24*60*60*1000;
d = new Date(d);
var startDate = dateToString(d);
//把日期值输出到chrome的日志中,方便调试
console.log(d);
console.log(startDate);
console.log(endDate);
var date1 = document.getElementById("date1");
var date2 = document.getElementById("date2");
date1.value = startDate;
date2.value = endDate;
}
</script>
</head>
<body onload="onload()">
<table>
<tr>
<td name="day">开始日期: <input type="date" name="day" id="date1" /></td>
</tr>
<tr>
<td name="day">结束日期:<input type="date" name="day" id="date2"/></td>
<td><input type="button" value="查 询" onclick="query()" /></td>
</tr>
</table>
<hr>
<p><span id="sp"></span><p>
</body>
</html>
效果:
左侧部分是网页内容,页面一加载,就会自动设置开始日期、结束日期,点击查询按钮,在一条横线下面就会输出选择的日期值。
为了调试方便,在打开网页后,在chrome中按 F12键,然后会出现上图中右侧的部分,点击里面的Console按钮,会显示代码运行过程中的日志,其中包含了 输出的变量值。
PS:这里再为大家推荐几款比较实用的天数计算在线工具供大家使用:
在线日期/天数计算器:
http://tools./jisuanqi/date_jisuanqi
在线日期计算器/相差天数计算器:
http://tools./jisuanqi/datecalc
在线日期天数差计算器:
http://tools./jisuanqi/onlinedatejsq
在线天数计算器:
http://tools./jisuanqi/datejsq
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript+HTML5特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JavaScript
# 设置
# 默认
# 日期范围
# 最近40天
# javascript日期比较方法实例分析
# javascript简单比较日期大小的方法
# javascript比较两个日期相差天数的方法
# js比较日期大小的方法
# JS比较2个日期间隔的示例代码
# JS 日期比较大小的简单实例
# javascript检查日期格式的函数[比较全]
# JavaScript输出所选择起始与结束日期的方法
# js获取日期:昨天今天和明天、后天
# js时间戳格式化成日期格式的多种方法
# JavaScript+HTML5实现的日期比较功能示例
# 就会
# 加载
# 增加了
# 相关内容
# 可以用
# 感兴趣
# 上一
# 数据结构
# 给大家
# 想了
# 不符合
# 点击进入
# 转化为
# 更多关于
# 所述
# 图中
# 几款
# 程序设计
# 转化成
# 过程中
相关文章:
如何在建站主机中优化服务器配置?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
建站主机是否等同于虚拟主机?
定制建站价位费用解析与套餐推荐全攻略
常州自助建站工具推荐:低成本搭建与模板选择技巧
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何挑选高效建站主机与优质域名?
如何在Windows服务器上快速搭建网站?
教程网站设计制作软件,怎么创建自己的一个网站?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
建站之星安装后如何自定义网站颜色与字体?
如何选择香港主机高效搭建外贸独立站?
如何快速生成高效建站系统源代码?
制作销售网站教学视频,销售网站有哪些?
网页设计网站制作软件,microsoft office哪个可以创建网页?
再谈Python中的字符串与字符编码(推荐)
如何在宝塔面板中修改默认建站目录?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
广州营销型建站服务商推荐:技术优势与SEO优化解析
简历在线制作网站免费版,如何创建个人简历?
广平建站公司哪家专业可靠?如何选择?
建站之星代理平台如何选择最佳方案?
如何做静态网页,sublimetext3.0制作静态网页?
建站之星×万网:智能建站系统+自助建站平台一键生成
如何快速使用云服务器搭建个人网站?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何打造高效商业网站?建站目的决定转化率
营销式网站制作方案,销售哪个网站招聘效果最好?
如何通过二级域名建站提升品牌影响力?
如何通过宝塔面板实现本地网站访问?
建站之星与建站宝盒如何选择最佳方案?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
seo网站制作优化,网站SEO优化步骤有哪些?
常州企业网站制作公司,全国继续教育网怎么登录?
建站之星官网登录失败?如何快速解决?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
建站主机核心功能解析:服务器选择与网站搭建流程指南
建站VPS能否同时实现高效与安全翻墙?
如何通过建站之星自助学习解决操作问题?
济南企业网站制作公司,济南社保单位网上缴费步骤?
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星ASP如何实现CMS高效搭建与安全管理?
行程制作网站有哪些,第三方机票电子行程单怎么开?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何零基础开发自助建站系统?完整教程解析
如何用腾讯建站主机快速创建免费网站?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何快速搭建响应式可视化网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。