JavaScript日期选择功能示例

发布时间 - 2026-01-10 22:32:58    点击率:

本文实例讲述了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>

运行效果图如下:

PS:这里再为大家提供几款日期与日历相关在线工具供大家参考使用:

在线万年历日历:
http://tools./bianmin/wannianli

网页万年历日历:
http://tools./bianmin/webwannianli

在线阴历/阳历转换工具:
http://tools./bianmin/yinli2yangli

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

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


# JavaScript  # 日期选择  # js 格式化时间日期函数小结  # 日期 时间js控件  # js data日期初始化的5种方法  # JS 日期比较大小的简单实例  # js时间戳格式化成日期格式的多种方法  # js用Date对象的setDate()函数对日期进行加减操作  # js获取日期:昨天今天和明天、后天  # js时间戳转为日期格式的方法  # js中的时间转换—毫秒转换成日期时间的示例代码  # JS 显示当前日期与时间的代码  # js:日期正则表达式及检测  # JS 日期操作代码  # 获取当前日期  # 加一天  # 减一天  # 大月  # 相关内容  # 遍历  # 感兴趣  # 数据结构  # 给大家  # 不知道为什么  # 更多关于  # 所述  # 几款  # 程序设计  # 转换工具  # 再为  # 操作技巧  # 讲述了  # br  # href  # location  # dateOp  # id 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港服务器部署网站为何提示未备案?  北京网站制作的公司有哪些,北京白云观官方网站?  如何在腾讯云免费申请建站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  如何破解联通资金短缺导致的基站建设难题?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何用PHP快速搭建CMS系统?  🚀拖拽式CMS建站能否实现高效与个性化并存?  nginx修改上传文件大小限制的方法  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  教你用AI将一段旋律扩展成一首完整的曲子  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何在阿里云域名上完成建站全流程?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  音响网站制作视频教程,隆霸音响官方网站?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何实现用户密码重置功能?(完整流程代码)  再谈Python中的字符串与字符编码(推荐)  Android仿QQ列表左滑删除操作  如何在宝塔面板中修改默认建站目录?  iOS验证手机号的正则表达式  微信小程序 HTTPS报错整理常见问题及解决方案  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何快速使用云服务器搭建个人网站?  如何解决hover在ie6中的兼容性问题  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  bing浏览器学术搜索入口_bing学术文献检索地址  linux写shell需要注意的问题(必看)  如何在自有机房高效搭建专业网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel如何实现API资源集合?(Resource Collection教程)  如何用西部建站助手快速创建专业网站?  如何在Tomcat中配置并部署网站项目?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何用IIS7快速搭建并优化网站站点?  如何做网站制作流程,*游戏网站怎么搭建?  用yum安装MySQLdb模块的步骤方法  Laravel如何升级到最新版本?(升级指南和步骤)  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何获取上海专业网站定制建站电话?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】