原生JS实现左右箭头选择日期实例代码
作者:realpzyyy 发布时间:2023-08-06 04:55:27
标签:js,箭头,日期
先上个效果图,就是用左右尖括号可改变中间日期的值。(点击中间显示区域有时间选择器弹框,用的插件就不说了,主要说自己原创的部分)
HTML部分 (左右箭头都是用的图片素材,网上一大把,这里我就显示我本地地址了)
<div>
<span class="leftspan" <span style="color:#FF0000;">onclick="reducedate()"</span>><img src="IMG/return.png" style="height:100%; width:100%;"/></span>
<label id="beginTime" class="kbtn"></label>
<span class="rightspan" <span style="color:#FF0000;">onclick="adddate()"</span>><img src="IMG/right.png" style="height:100%; width:100%;"</span>
</div>
HTML部分没什么可说的
下面原生JS部分了(底部有本插件附件,欢迎各路朋友评论交流)
function adddate(){
//向右跳转时间(加时间)的按钮
var s = document.getElementById("beginTime").innerHTML;
var arr = s.split("/"); //将获取的数组按“/”拆分成字符串数组
var year = parseInt(arr[0]);//开分字符串数组的第一个地址的内容是年份
var mouth = parseInt(arr[1]);//开分字符串数组的第二个地址的内容是月份
var date = parseInt( arr[arr.length-1]);//开分字符串数组的第三个地址的内容是日期
if(date == 28){//当日期为28号时 只判断是否是2月
switch(mouth)
{
case 2:
if(year % 4 == 0 && year % 100 !=0 || year%400 ==0){
date = date +1;
} //如果是闰年2月 日期就加一
else {
date = 1;
mouth = mouth +1;
} //不是闰年2月 日期就变为1 月份加一
}
}else if(date == 29){ //当日期为29号是 也是判断是否是2月
switch(mouth)
{
case 2:
date = 1;
mouth = mouth +1;
} //当29号出现必定是闰年 日期变为1 月份加一
}else if(date == 30){ //当日期为30 时
switch(mouth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
date = date +1;
break; //这些月份的时候一个月有31天 到30的时候再加一
case 4:
case 6:
case 9:
case 11:
date = 1;
mouth = mouth +1;
break; //这些月份的时候一个月有30天 到30的时候 日期变为1 月份加一
}
}else if(date == 31){
switch(mouth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
date = 1;
mouth = mouth+1;
break; //这些月份的时候一个月有31天 到31的时候 日期为1月份加一
case 12:
date = 1;
mouth = 1;
year = year+1;;
break; //十二月 的 31 号 日期变为一 月份变为一 年份加一
}
}else{
date +=1;
}
document.getElementById("beginTime").innerHTML = year+"/"+mouth+"/"+date;
}
function reducedate(){
//向左跳转时间(减时间)的按钮
var s = document.getElementById("beginTime").innerHTML;
var arr = s.split("/"); //将获取的数组按“/”拆分成字符串数组
var year = parseInt(arr[0]);//开分字符串数组的第一个地址的内容是年份
var mouth = parseInt(arr[1]);//开分字符串数组的第二个地址的内容是月份
var date = parseInt( arr[arr.length-1]);//开分字符串数组的第三个地址的内容是日期
if(date == 1){//当日期为1时,再剪就会改变月份,甚至年份
switch(mouth){
case 1:
date = 31;
mouth = 12;
year = year-1;
break; //一月一日 再剪一天 年份减一 月份为12 日期为31
case 2:
case 4:
case 6:
case 8:
case 9:
case 11:
date = 31;
mouth = mouth-1;
break; //这些月一日 再剪一天 月份减一 日期为31
case 3:
if(year % 4 == 0 && year % 100 !=0 || year%400 ==0){
date = 29;
mouth = mouth -1;
}else {
date = 28;
mouth = mouth -1;
}
break; //三月一日 再剪一天 月份减一 日期为根据是否是闰年来判断 日期
case 5:
case 7:
case 10:
date = 30;
mouth = mouth -1;
break; //这些月一日 再剪一天 月份减一 日期为30
}
}else{
date = date-1;
}
document.getElementById("beginTime").innerHTML = year+"/"+mouth+"/"+date; //拼接字符串插入到标签中
}
写个使用API吧:
向左尖括号(减少时间)
<span style="color:#FF0000;">onclick="reducedate("tagid")";
/span>
向右尖括号(增加时间)
<span style="color:#FF0000;">onclick="adddate()("tagid")";
/span>
代码可复制到自己的JS中,也可插入。
以上所述是小编给大家介绍的原生JS 左右箭头选择日期实例代码,希望对大家有所帮助!
来源:http://blog.csdn.net/sinat_16463137/article/details/61925606
0
投稿
猜你喜欢
- 演示:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//
- 一、问题引发思考前阵子与同事探讨一个小需求时又遇到了按钮表示“动作”和表示“状态”间矛盾问题。想想这个问题多年前已经开始讨论了,所以在此整理
- //冒泡排序func mpSort(array []int) { for i:=0;i<len(array);i++ {
- 首先,创建一个存储过程 get_clob:t_name:要查询的表名;f_name:要查询的字段名;u_id:表的主键,查询条件;l_pos
- 之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看
- 此处收集的是一些夺人心魄的创意广告牌,巧妙的构思十分值得大家观瞻.......超人归来 superman returnsNespressos
- 听到一些人说现在做产品设计很没有成就感。没有什么创造力,除了抄袭模仿(称之为竞争分析)、千篇一律(又称规范标准)还有复杂的流程、粗制滥造的表
- 延迟是什么defer即延迟语句,极个别的情况下,Go才使⽤defer、panic、recover这种异常处理形式。defer可以延迟函数、延
- 方法一1. 下载MySQL源码分发包,不用区分操作系统,我们需要的东西是一样的;2. 重命名自己的mysql的data目录下的mysql文件
- 对于注入而言,错误提示是极其重要。所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要。本问讨论
- 随着互联网的快速发展和数据交换的广泛应用,各种数据格式的处理成为软件开发中的关键问题。JSON 作为一种通用的数据交换格式,在各种应用场景中
- 今天有个哥们问我要是JavaScript函数重名了会有什么后果?开始我没有细想,就说可能会出错吧,可是等我实验完了发现页面没有任何脚本错误提
- 表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把
- cache 是一个带索引带超时的缓存库目的在于优化代码结构,提供了若干实践。 https://github.com/weapons
- JS是一段一段执行的(以<script>标签来分割),执行每一段之前,都有一个“预编译”,预编译干的活是:声明所有var变量(初
- 见过很多网站,在设计的时候给了用户很大的自由度,我个人并不赞同这种做法。最简单的例子,圈网。我在研究圈网的时候注册完成后圈网给了我一个搜索框
- 什么是MySql数据库?通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合。我们通常
- 该语句的作用是:启用或禁用错误处理程序。一般用法如下:On Error Resume NextOn Error GoTo 0如果在您的代码中
- 前言在工作中使用的是oracle数据库,平时想在家测试一些sql是否可以跑的过,可惜自己电脑并没有安装oracle数据库,甚至完全不想安装到
- win2000注册表程序 regedt32.exe下面是解决IIS出现Active Server Pages错误&