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 相关文章推荐
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
jquery validate使用攻略 第四步
Jul 01 Javascript
JavaScript 和 Java 的区别浅析
Jul 31 Javascript
javascript读取xml实现javascript分页
Dec 13 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
Sep 03 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 Javascript
从零搭一个自用的前端脚手架的方法步骤
Sep 23 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
js利用iframe实现选项卡效果
Aug 09 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 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
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
解析php入库和出库
2013/06/25 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
django 简单实现登录验证给你
2019/11/06 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
常用的10个Python实用小技巧
2020/08/10 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
《自然之道》教学反思
2014/02/11 职场文书
党员志愿者活动总结
2014/06/26 职场文书
单身证明范本
2015/06/15 职场文书
校运会宣传稿大全
2015/07/23 职场文书
Python中requests库的用法详解
2022/06/05 Python