在使用el-date-picker组件时,选择的开始时间和结束时间保存在form对象中,代码如下:
return {
form: {
date: '' // 日期
},
}
},
需求: 后端要求开始时间和结束时间的传参规则为:
开始时间: 任意选择某一天;
结束时间: 为开始选择的某一天到选择该天的23:59
获取选择该天的零点和23:59 进行运算做出判断即可。
let startTimes = this.form.date[0] // 开始时间
let startStamp = Date.parse(startTimes) // 开始时间时间戳
let endTimes = this.form.date[1] // 结束时间
let endStamp = Date.parse(endTimes) // 结束时间时间戳
// 获取零点时刻
function formatTime(timestamp) {
let time = new Date(timestamp)
let stTime = timestamp - time.getHours() * 60 * 60 * 1000 - time.getMinutes() * 60 * 1000 - time.getSeconds() * 1000 - time.getMilliseconds()
return stTime
}
let start = formatTime(endStamp) // 当天零点
let end = start - 0 + 24 * 60 * 60 * 1000 - 1 // 当天的23:59
// var endSecond = end + 86400000 // 结束时间加24小时毫秒数
// var intEndStamp = Number(endStamp)
// var intEnd = Number(end)
// var intEndSecond = Number(endSecond)
// new Date()可以是任意一天的时间戳
let date = new Date(end)
let Y = date.getFullYear() + '-'
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
let D = date.getDate() + ' '
let h = date.getHours() + ':'
let m = date.getMinutes()
let timeData = Y + M + D + h + m
代码详解:
- Date.parse(time): 将某个时间点转化为13位时间戳
- 某个将时间戳转化为年月日时分秒格式(可粘贴直接复用,切记更改传入的时间戳 new Date(end))
let date = new Date(end)
let Y = date.getFullYear() + '-'
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
let D = date.getDate() + ' '
let h = date.getHours() + ':'
let m = date.getMinutes() + ':'
let s = date.getSeconds()
let timeData = Y + M + D + h + m + s
console.log('时间', timeData)