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 相关文章推荐
ASP.NET中AJAX 调用实例代码
May 03 Javascript
js判断游览器类型及版本号的代码
May 11 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
前端js弹出框组件使用方法
Aug 24 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
0基础学习前端开发的一些建议
Jul 14 Javascript
前端性能优化建议
Sep 17 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
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禁止页面缓存的代码
2011/10/23 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
php输出xml属性的方法
2015/03/19 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
Jquery获取和修改img的src值的方法
2014/02/17 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
angularjs基础教程
2014/12/25 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
JS正则子匹配实例分析
2016/12/22 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
Python多线程和队列操作实例
2015/06/21 Python
python求绝对值的三种方法小结
2019/12/04 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
.net工程师笔试题
2012/06/09 面试题
遗体告别仪式主持词
2014/03/20 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
基层工作经验证明样本
2014/11/16 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android