本文主要是介绍js 计算两个日期之间 相差几年几月几日,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.日期选择器
<a-form-model-item label="计租期" prop="Dates" :rules="{ required: true, message: '请输入计租期',trigger: 'blur',}"><a-range-picker style="width:300px;" v-model='form.Dates' :disabled='see' @change="changeDate" /></a-form-model-item>
2.定义开始时间和结束时间
startTime: null,endTime: null
3.组件日期选择器的改变事件
这里用到的组件是ant-design-vue,当选择完日期后触发,调用写的计算日期选择器的方法,输出结果
changeDate(times, e) {console.log(e)this.startTime = e[0]this.endTime = e[1]this.monthDayDiff()},
4. 计算时间差的方法
monthDayDiff() {// this指针let _this = this;let flag = [1, 3, 5, 7, 8, 10, 12, 4, 6, 9, 11, 2];let start = new Date(_this.startTime);let end = new Date(_this.endTime);let year = end.getFullYear() - start.getFullYear();let month = end.getMonth() - start.getMonth();let day = end.getDate() - start.getDate();if (month < 0) {year--;month = end.getMonth() + (12 - start.getMonth());}if (day < 0) {month--;let index = flag.findIndex((temp) => {return temp === start.getMonth() + 1});let monthLength;if (index <= 6) {monthLength = 31;} else if (index > 6 && index <= 10) {monthLength = 30;} else {monthLength = 28;}day = end.getDate() + (monthLength - start.getDate());}this.result = `相差${year}年${month}月${day}天`;console.log(this.result)},
5.效果图
这篇关于js 计算两个日期之间 相差几年几月几日的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!