JavaScript日期选择功能示例


Posted in Javascript onJanuary 16, 2017

本文实例讲述了JavaScript日期选择功能。分享给大家供大家参考,具体如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8">
  <title>javascript日期选择</title>
  <style type="text/css">
    option{
      width:150px;
    }
  </style>
</head>
<body>
<!--<input type="hidden" value="window.location.href" />-->
<br />
<div id="dateOp">
  <select id="selectYear" onchange="getDay()"></select>年
  <select id="selectMonth" onchange="getDay()"></select>月
  <select id="selectDay"></select>日
  <input type="button" value="getdate" />
</div>
<script type="text/javascript">
  //或得当前年月日
  var date = new Date();
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();
  var startYear = 2000;
  var endYear = 2050;
  var button = document.getElementsByTagName("input")[0];
  //得到三个select项
  var selectYearElement = document.getElementById("selectYear");
  var selectMonthElement = document.getElementById("selectMonth");
  var selectDayElement = document.getElementById("selectDay");
  //selectYearElement.onchange = getDay();
  //selectMonthElement.onchange = getDay();
  //selectYearElement.addEventListener
  getYear();
  getMonth();
  getDay();
  //年份函数
  function getYear() {
    for (var i = startYear; i <= endYear; i++) {
      var opYearElement = document.createElement("option");
      var textElement = document.createTextNode(i);
      opYearElement.appendChild(textElement);
      opYearElement.value = i;
      selectYearElement.appendChild(opYearElement);
    }
//设置默认年份的值
    selectYearElement.selectedIndex = year - startYear;
  }
  //月份函数
  function getMonth() {
    for (var i = 1; i <= 12; i++) {
      var opMonthElement = document.createElement("option");
      textMonth = document.createTextNode(i);
      opMonthElement.appendChild(textMonth);
      opMonthElement.value = i;
      selectMonthElement.appendChild(opMonthElement);
    }
//设置默认年份的值
    selectMonthElement.selectedIndex = month - 1;
  }
  //日期函数
  function getDay() {
    var getSelectedYear = selectYearElement.selectedIndex + startYear;
    var getSelectedMonth = selectMonthElement.selectedIndex + 1;
    var flag = 0;
    var selectDayElement = document.getElementById("selectDay");
    if (selectDayElement.hasChildNodes()) {
      var optionElements = selectDayElement.getElementsByTagName("option");
      for (var i = 0; i < optionElements.length; i++) {
        selectDayElement.removeChild(optionElements[0]);
//不知道为什么必须得自减一
        i--;
      }
    }
    else {
    }
//得到闰年
    if ((getSelectedYear % 4 == 0 && getSelectedYear % 100 != 0) || getSelectedYear % 400 == 0) {//得到闰年的年号
//alert("闰年");
//得到闰年大月份除二月以外
      if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 1 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 0)) {//得到大月
        setDay(flag = 31);
      }
      else if (getSelectedMonth <= 7 && getSelectedMonth == 2) {
        setDay(flag = 29);
      }
      else if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 0 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 1)) {//得到小月份除二月以外
        setDay(flag = 30);
      }
    }
//非闰年
    else {
//alert("平年");
//得到平年大月份除二月以外
      if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 1 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 0)) {//得到大月
        setDay(flag = 31);
      }
      else if (getSelectedMonth <= 7 && getSelectedMonth == 2) {
        setDay(flag = 28);
      }
      else if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 0 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 1)) {//得到小月份除二月以外
        setDay(flag = 30);
      }
    }
  }
  //设置默认年份的值
  selectDayElement.selectedIndex = day - 1;
  function setDay(dayLength) {
    for (var i = 1; i <= dayLength; i++) {
      var opDayElement = document.createElement("option");
      textMonth = document.createTextNode(i);
      opDayElement.appendChild(textMonth);
      opDayElement.value = i;
//alert(i);
      selectDayElement.appendChild(opDayElement);
    }
  }
  button.onclick = function () {
    var getSelectedYear = selectYearElement.selectedIndex + startYear;
    var getSelectedMonth = selectMonthElement.selectedIndex + 1;
    var getSelectedDay = selectDayElement.selectedIndex + 1;
    alert("当前选中的日期是:" + getSelectedYear + "年" + getSelectedMonth + "月" + getSelectedDay + "日")
  }
  //getDay
</script>
</body>
</html>

运行效果图如下:

JavaScript日期选择功能示例

Javascript 相关文章推荐
js变量作用域及可访问性的探讨
Nov 23 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
传递参数的标准方法(jQuery.ajax)
Nov 19 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
JQ技术实现注册页面带有校验密码强度
Jul 27 Javascript
js实现分割上传大文件
Mar 09 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
AngularJS ng-bind-template 指令详解
Jul 30 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
Sep 01 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
Nov 26 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 #Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
Jan 16 #Javascript
Node.js中用D3.js的方法示例
Jan 16 #Javascript
JavaScript实现的select点菜功能示例
Jan 16 #Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
Jan 16 #Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 #Javascript
js实现弹窗暗层效果
Jan 16 #Javascript
You might like
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
python3大文件解压和基本操作
2017/12/15 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python多线程thread及模块使用实例
2020/04/28 Python
python 如何调用远程接口
2020/09/11 Python
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
社会治安综合治理管理责任书
2014/04/16 职场文书
妇女干部培训方案
2014/05/12 职场文书
企业宣传工作方案
2014/06/02 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
小学运动会开幕词
2016/03/04 职场文书