JavaScript输出所选择起始与结束日期的方法


Posted in Javascript onJuly 12, 2017

本文实例讲述了JavaScript输出所选择起始与结束日期的方法。分享给大家供大家参考,具体如下:

一直在用公司的报表工具做报表,报表里最常用的查询条件就是开始日期、结束日期。

自己会一点html和js,于是就想用html+JavaScript来实现选择查询日期,以及做出相应。

实现之后,觉得这个还是比较简单的,N年前学的html和javascript,总算是派上用场了,人人都可以开发网页。

这个代码要在谷歌的chrome浏览器中,日期选择才能有效果(代码中的input元素Type属性值date为HTML5元素,需要支持HTML5的浏览器运行)

代码如下:

<!DOCTYPE HTML>
<html>
<head>
 <meta http-equiv="content-type" content="charset=gbk"></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(xx[i].value == null || xx[i].value == 'Undefined' || xx[i].value == "")
      // alert(xx[i].value);
     }
    }
    if( i % 2 == 1)
     s+=";";
   }
   var yy = document.getElementById("sp");
   yy.innerHTML = s;
   //document.write("abcdefg<hr>");
   //alert(xx.length);
  }
 </script>
</head>
<body>
 <table>
  <tr>
   <td name="day">开始日期: <input type="date" name="day" /></td>
   <td name="day">结束日期:<input type="date" name="day" /></td>
   <td><input type="button" value="查 询" onclick="query()" />
   </td>
  </tr>
  <tr>
   <td><span id="sp"></span></td>
  </tr>
 </table>
</body>
</html>

写完这个代码后,第一个感觉是javascript是一个区分大小写的编程语言,在我印象中好像就VB、SQL是不区分大小写的,而其他的c#、java、python都是区分大小写的,今天在写js代码时,很大一个坑就是定义的变量是小写s,但是写出大写的S了,过了5分钟才发现总是报错:变量没有定义。。。

运行效果如下:

JavaScript输出所选择起始与结束日期的方法

通过这个例子,我感觉自己对js 、html更加了解:

1、日期选择的输入,这里通过input标签的 type=date来实现。
2、当选择日期之后,点击按钮,这个按钮上的文字,是通过 input type=button的value属性来实现。
3、点击按钮之后,怎么响应?写上onclick数学=“处理函数” 就可以
4、这个onclick事件的响应函数要怎么写?这里点击之后,会输出选择的日期。
5、如何获取到选择的日期呢?这里通过document对象的 getElementsByName函数来找标签属性name="day"的标签。
6、找到这些标签之后,接下来判断上又遇到了麻烦。对于标签内容可以用 .innerText(只是文本而不包含其他标签),而对于网页的内容则是.innerHTML。另外,对于选择的日期值,可以用.value属性 来取。
7、接下来的一个问题是,既要取标签内容,又要取所选择的日期值,如何区分呢?
可以用.tagName属性来判断,如果是INPUT,那么用.value取值,如果是TD,那么用.innerText。
8、假设没有选择日期,那么获取到的value是什么呢?实验证明返回了空串,而不是null。如果变量s初始化,那么s的值就是Undefined。
9、字符串的赋值可以用+=运算符,那么代码s=s+xx ,可以改成s+=xx,这种写法普遍的写法,现在连sql语句也是支持的
10、对于代码中的if else语句,着实觉得写着不方便,尽然没有elseif或者elif,而是一定要else,然后再写if -else。。。
11、i%2 == 1这个是因为i是0、1、2、3,当到了i=1时,才在变量s中加上分号,效果:
开始日期: 2017-01-03;结束日期:2017-01-19;
12、输出结果放哪里?这里在报表中增加了1行:span标签,name=sp,一开始不会显示出来。当然,要把输出作为这个标签的内容,首先要找到标签,这里通过getElementById来找到标签,然后把输出结果放到.innerHTML中就可以了。

PS:这里再为大家推荐几款比较实用的天数计算在线工具供大家使用:

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器:
http://tools.3water.com/jisuanqi/datecalc

在线日期天数差计算器:
http://tools.3water.com/jisuanqi/onlinedatejsq

在线天数计算器:
http://tools.3water.com/jisuanqi/datejsq

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
IE innerHTML,outerHTML所引起的问题
Jun 04 Javascript
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 Javascript
js css+html实现简单的日历
Jul 14 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
Jul 12 Javascript
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
vue-cli如何引入bootstrap工具的方法
Oct 19 Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
简化vuex的状态管理方案的方法
Jun 02 Javascript
微信小程序实现简单购物车功能
Dec 30 Javascript
微信小程序三级联动地址选择器的实例代码
Jul 12 #Javascript
微信小程序 共用变量值的实现
Jul 12 #Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
Jul 12 #Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 #Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 #Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
Jul 12 #Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 #Javascript
You might like
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Python中文件的读取和写入操作
2018/04/27 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
外贸业务员求职自荐信分享
2013/09/21 职场文书
气象学专业个人求职信
2014/03/15 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
健康证明
2015/06/19 职场文书