纯js实现日期选取功能
2024-08-27 16:06:28
平年:
2月-->28天
4,6,9,11月-->30天
1,3,5,7,8,10,12月-->31天
闰年:
2月-->29天
4,6,9,11月-->30天
1,3,5,7,8,10,12月-->31天
闰年的计算方式:
1、年份/100
2、如果 年份/100有余数 , 年份/4 没有余数 是闰年
如果 年份/100没余数 , 年份/400 没有余数 是闰年
function year(years){
return years%100 == 0 ? (years%400 == 0 ? 1 : 0) : (years%4 == 0 ? 1 : 0);//判断闰年;如果是闰年返回1,平年返回0
}
function day(mouths, fn){//fn --> year()函数
if(fn == 1 && mouths == 2){
return 29;
}else{
if(mouths == 2){
return 28;
}else if(mouths == 4 || 6 || 7 || 9 || 11){//4 6 7 9 11 -> 30
return 30;
}else{
return 31;
}
}
}
下面是全部代码:
html:
<div id="datebox"></div><!--选完日期后填入的地方-->
<div style="display: flex;">
<div class="years"> </div>
<div class="mouth" style="display: none"> </div>
<div class="day" style="display: none"> </div>
</div>
css:
<style>
.years,.mouth,.day{
width: 90px;
height: 200px;
overflow-y: scroll;
}
</style>
javascript:
var startYear = 1918;
var years = document.getElementsByClassName('years')[0];
var mouth = document.getElementsByClassName('mouth')[0];
var days = document.getElementsByClassName('day')[0];
for(var k = startYear; k <= 2017; k++){
var node = createNode(k);
years.appendChild(node);
}
for(var m = 1; m <= 12; m++){
var node = createNode(m);
mouth.appendChild(node);
}
function createDay(option){
for(var i = 1; i <= option; i++){
var node = createNode(i);
days.appendChild(node);
}
}
function createNode (num){
var node = document.createElement('a');
node.innerHTML = num;
node.style.display = 'block';
return node;
}
function year(years){
return years%100 == 0 ? (years%400 == 0 ? 1 : 0) : (years%4 == 0 ? 1 : 0);
}
function day(mouths, fn){
if(fn == 1 && mouths == 2){
return 29;
}else{
if(mouths == 2){
return 28;
}else if(mouths == 4 || 6 || 7 || 9 || 11){//4 6 7 9 11 -> 30
return 30;
}else{
return 31;
}
}
}
years.addEventListener('click', function(e){
var temps = [];
temps.push(e.target.innerHTML);
mouth.style.display = 'block';
mouth.addEventListener('click', function(e){
temps.push(e.target.innerHTML);
days.style.display = 'block';
createDay(day(temps[1], year(temps[2])));
days.addEventListener('click', function(e){
temps.push(e.target.innerHTML);
var dates = temps[0] + '年' + temps[1] + '月' + temps[2] + '日';
datebox.innerHTML = dates;
this.style.display = 'none';
mouth.style.display = 'none';
years.style.display = 'none';
})
})
})
最新文章
- GUI - GEB UI库
- CCEA OCX
- NPM私有服务器架设 FOR CentOS
- asp.net mvc get controller name and action name
- 使用expect实现批量操作的自动化
- Others in life
- 【译】Flink + Kafka 0.11端到端精确一次处理语义的实现
- 前端面试题整理—Webpack篇
- 简易机器学习代码(LR,Kmeans,NN,RNN)
- 一个CLR20r3 错误解决。
- JS基础题
- PAT A1108 Finding Average (20 分)——字符串,字符串转数字
- a simple example for spring AOP
- jquery 和 FormData 最简单图片异步上传
- Spring Boot 系统要求
- eclipse—Maven项目打包成exe
- [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数
- IO模型《七》selectors模块
- java soa接口测试,可以使用http协议调用
- LeetCode解题报告—— Trapping Rain Water