需求:因为表格数据量大,所以后端设计要求只下载 7 天以内数据,所以就需要计算两个日期范围间隔天数来下载 Excel。我这里使用的是 elementui 的 el-date-picker 组件,具体实现方法看下面。
HTML
<el-date-picker v-model="times" type="datetimerange" :default-time="['00:00:00', '00:00:00']" align="right" unlink-panels range-separator="至" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" clearable @change="clearTime"> </el-date-picker>
然后,封装一个函数计算日期间隔天数
getDaysBetweenDates(date1, date2) { // 获取两个日期的时间戳 var timestamp1 = new Date(date1).getTime(); var timestamp2 = new Date(date2).getTime(); // 计算差值(单位:毫秒),并将其转换为天数 var days = Math.abs((timestamp2 - timestamp1) / (1000 * 60 * 60 * 24)); return Math.ceil(days); // 结果向上取整,返回天数 }
函数接受两个参数(date1 和 date2),这两个参数是字符串,代表日期,可以是任何有效的日期格式,如 “YYYY/MM/DD”、”MM/DD/YYYY” 或 “January 31, 2000” 等。
这个函数首先将这两个日期转换为时间戳,然后计算这两个时间戳的差值,并将这个差值转换为天数。最后,结果被向上取整,因为我们通常把任何部分的天数都计入整天。