js选中起始时间使用标准时间毫秒值计算一年后的当前少一天的日期(并考虑闰年)

js选中起始时间使用标准时间毫秒值计算一年后的当前少一天的日期

实际代码里面带入默认日期’20230301’这个特殊日期,因为下一年的当前日期少一天为闰年的2月会有29天,使用特殊值校验代码效果图

js选中起始时间使用标准时间毫秒值计算一年后的当前少一天的日期(并考虑闰年)_第1张图片

js选中起始时间使用标准时间毫秒值计算一年后的当前少一天的日期(并考虑闰年)_第2张图片

HTML部分代码

<el-button @click="chengTime()" type="warning">按钮一</el-button>
<el-button @click="chengTimes()" type="info">按钮二</el-button>

JS部分代码

            // 将毫秒值时间转化为标准时间格式方法
            dateFormat(val){
                 let date=new Date(val);
                 let y=date.getFullYear();
                 let m=date.getMonth()+1;
                 m=m<10?'0'+m:m;
                 let d=date.getDate();
                 d=d<10?'0'+d:d;
                 let time=y+'-'+m+'-'+d;
                 return time
            },
            // 第一种方法获取开始时间计算一年后的当前时间少一天的日期
            chengTime(){
                  let timeList=[]
                  let nowtime='20230301' // 这里专门挑选了闰年2月最后一天的特殊数据进行测试
                  let nowyear=Number(nowtime.substring(0,4))+1
                  let nowmonth=nowtime.substring(4,6)
                  let nowday=nowtime.substring(6,8)
                  if(nowmonth=='02'&&nowday=='29'){
                    nowmonth='03';
                    nowday='01'
                  }
                  timeList.push((nowyear+''));
                  timeList.push(nowmonth);
                  timeList.push(nowday);
                  let timeStr=timeList[0]+'-'+timeList[1]+'-'+timeList[2]
                  let oldtime=new Date(timeStr).getTime()-3600*24*1000
                  let formattedTime=this.dateFormat(oldtime).replace("-", "").replace("-", "")
                  this.$message({
                        message: `按钮一的值,${formattedTime}`,
                        type: 'success'
                  })
            },
            // 第二种方法获取开始时间计算一年后的当前时间少一天的日期
            chengTimes(){
                  let nowtime='20230301' // 这里专门挑选了闰年2月最后一天的特殊数据进行测试
                  let nowyear=Number(nowtime.substring(0,4))+1;  // 年份上加上1获取下一年的年数据
                  let nowmonth=parseInt(nowtime.substring(4,6))-1; // 根据new Date()获取时间数据的方法,传入的月份需要减去1
                  let nowday=parseInt(nowtime.substring(6,8))-1;// 天数上减去1获取少一天的数据
                  let formattedTime=this.dateFormat(new Date(nowyear,nowmonth,nowday)).replace("-", "").replace("-", "")
                  this.$message({
                        message: `按钮二的值,${formattedTime}`,
                        type: 'error'
                  })
            }

需要注意的是:方法一在实际使用中需要考虑浏览器对于原生JS的支持版本,我在实际使用中发现低版本的好像不兼容。使用方法二的话就兼容性更好,更推荐使用方法二去获取下一年当前日期少一天的日期数据。

你可能感兴趣的:(javascript,开发语言,ecmascript,vue.js,前端)