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的has()方法以及与find()方法以及filter()方法的区别详解
Apr 26 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
JavaScript实现点击文字切换登录窗口的方法
May 11 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
深入理解vue.js中的v-if和v-show
Jun 22 Javascript
Angular CLI 安装和使用教程
Sep 13 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
原生javascript AJAX 三级联动的实现代码
May 04 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
webpack@v4升级踩坑(小结)
Oct 08 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
layer.confirm()右边按钮实现href的例子
Sep 27 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开发的一些注意点总结
2010/10/12 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
webpack实用小功能介绍
2018/01/02 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
Python遍历目录中的所有文件的方法
2016/07/08 Python
Numpy之reshape()使用详解
2019/12/26 Python
浅析Python3 pip换源问题
2020/01/06 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
高中军训感言500字
2014/02/24 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
1亿有多大教学反思
2014/05/01 职场文书
委托书如何写
2014/08/30 职场文书
2014年稽查工作总结
2014/12/20 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
于丹论语心得观后感
2015/06/15 职场文书
城南旧事读书笔记
2015/06/29 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书