/* eslint-disable no-unused-vars */
import moment from 'moment'
/**
*
* 一下得到的是时间对象
*
**/
moment().startOf('day')// 当天的开始00:00:00
moment('2019-12-11')// 2019-12-11 00:00:00
moment('2019-12-11 1:12:12') // 2019-12-11 1:12:12 这一天的此时此分
moment('2019-12-11 1:12:12').startOf('day') // 2019-12-11这一天的凌晨
moment('2019-12-11 1:12:12').add(1, 'days') // 2019-12-12 1:12:12' 即 (2019-12-11 1:12:12的后一天的此刻)
moment('2019-12-11 1:12:12').startOf('day').add(1, 'days')// 2019-12-12 00:00:00 即(2019-12-11 1:12:12的后一天的凌晨)
moment('2019-12-11 1:12:12').endOf('day') // 2019-12-11 23:59:59 即 2019-12-11 这一天的结束时刻
moment('2019-12-11 1:12:12').add(1, 'days').endOf('day') /// / 2019-12-12 23:59:59 即 2019-12-11 这一天的后一天的结束时刻
moment().subtract(7, 'days') // 七天前
moment().subtract(7, 'days').format('YYYY-MM-DD hh:mm:ss') // 得到7天前的年月日时分秒
moment().subtract(7, 'days').format('YYYY') // 得到7天前的年
moment().subtract(7, 'days').format('MM') // 得到7天前的月
moment().subtract(7, 'days').format('DD') // 得到7天前的日
/**
* 取得格式化时为00:00:00 是有问题的。
*/
// moment().subtract(7, 'days').format('hh') // 得到7天前的年某时的时
moment().subtract(7, 'days').format('mm') // 得到7天前的某时某分的分
moment().subtract(7, 'days').format('ss') // 得到7天前的某时某刻的秒数
moment().add(1, 'month')// 下一个月的今天
moment().add(1, 'month').format('YYYY-MM-DD hh:mm:ss')
/**
* 得到指定日期的毫秒数
*/
// Date.UTC(year, month, day, hours, minutes, seconds, ms)
var hhh = moment('2019-2-1 1:12:12').add(7, 'days').endOf('day')
console.log(hhh._d.getTime())
// Data 时间日期函数
console.log(Date.UTC(2005, 7, 9))// 得到指定日期 的毫秒数
/**
* starttimechange 点击开始时间的确定按钮的函数
* @param {*} datobj 点击时间插件后选择时间,返回的时间对象
* that.efmobj.endtime 时间插件双向绑定结束时间
* this.showtime 值默认情况 默认时间时一天的开始到结束;值 hour:默认时间当前的小时数到当前小时数加1
*/
function starttimechange (datobj) {
let that = this
let objtime = datobj.clone()
let startSubend = that.convertmilliseconds(datobj) - that.convertmilliseconds(that.efmobj.endtime)
// console.log(startSubend, '======开始减去结束时间的毫秒差值')
switch (this.showtime) {
case 'hour':
if ((startSubend > 0) || (startSubend < (-3600000))) that.efmobj.endtime = objtime.add(1, 'hour')
break
default:
switch (true) {
case startSubend >= 0:
that.efmobj.endtime = objtime.endOf('day')
break
case startSubend < (-604800000):// 7*24*60*60*1000
that.efmobj.endtime = objtime.add(6, 'day').endOf('day')
break
}
}
}
/**
* endtimechange 点击开始时间的确定按钮的函数
* @param {*} datobj 点击时间插件后选择时间,返回的时间对象
* that.efmobj.starttime 时间插件双向绑定开始时间
* this.showtime 值默认情况 默认时间时一天的开始到结束;值 hour:默认时间当前的小时数到当前小时数加1
*/
function endtimechange (datobj) {
let that = this
let objtime = datobj.clone()
let startSubend = that.convertmilliseconds(datobj) - that.convertmilliseconds(that.efmobj.starttime)
switch (this.showtime) {
case 'hour':
if ((startSubend < 0) || (startSubend > 3600000)) that.efmobj.starttime = objtime.subtract(1, 'hour')
break
default:
switch (true) {
case startSubend < 0:
that.efmobj.starttime = objtime.startOf('day')
break
case startSubend > 604800000:// 7*24*60*60*1000
that.efmobj.starttime = objtime.subtract(6, 'day').startOf('day')
break
}
}
}
/**
* convertmilliseconds 计算时间差
* @param {*} timestr 时间对象
* Date.UTC() 转时间戳的函数
*/
function convertmilliseconds (timestr) {
// console.log(timestr.format())
let datastr = timestr.format()
let YYYY = datastr.slice(0, 4)
let MM = datastr.slice(5, 7)
let DD = datastr.slice(8, 10)
let hh = datastr.slice(11, 13)
let mm = datastr.slice(14, 16)
let ss = datastr.slice(17, 19)
let millisenconds = Date.UTC(YYYY, MM, DD, hh, mm, ss)
// console.log(millisenconds, '======', YYYY, MM, DD, hh, mm, ss)
return millisenconds
}
例子 比较时用时间戳
当点击开始日期时
- 当是默认时间的时候 --时间跨度是7天
起初赋值是当天的开始到当天的结束
当开始大于结束时,结束=开始天23:59:59
当开始小于结束且在7天内,默认不变
当开始小于结束且大于7天 结束=开始+7天
- 当默认事当前的 时钟 ---当前时钟+1 时间跨度1小时
开始大于结束时,结束=开始+1小时
开始小于结束且1小时内 结束=默认
开始小于结束且大于1小时 结束=开始+1小时
当点击结束日期时
- 当是默认时间的时候 --时间跨度是7天
起初赋值是当天的开始到当天的结束
当结束小于开始时, 开始=结束-1天
当结束大于开始且在7天内, 开始=默认不变
当结束大于开始且大于7天 开始=结束-7天
- 当默认事当前的 时钟 ---当前时钟+1 时间跨度1小时
结束小于开始时, 开始=结束-1小时
结束大于开始且1小时内 开始=默认
借宿大于开始且大于1小时 开始=开始-1小时
<a-col
class="widthtime"
:sm="24"
:md="12"
:lg="8"
:lx="8"
v-if="'starttime' in queryCondition">
<a-form-item label="开始时间">
<a-date-picker
v-model="efmobj.starttime"
showTime
:showToday="false"
format="YYYY-MM-DD HH:mm:ss"
placeholder="开始时间"
@ok="starttimechange"
/>
</a-form-item>
</a-col>
<a-col
class="widthtime"
:sm="24"
:md="12"
:lg="8"
:lx="8"
v-if="'endtime' in queryCondition">
<a-form-item label="结束时间" style="widht:100%;">
<a-date-picker
v-model=" efmobj.endtime"
showTime
:showToday="false"
format="YYYY-MM-DD HH:mm:ss"
@ok="endtimechange"
placeholder="结束时间"
/>
</a-form-item>
import moment from 'moment'
//.............
data () {
return {
machineIDList: [],
comform: {},
dateFormat: 'YYYY/MM/DD hh:mm:ss',
efmobj: {
factoryname: null,
linename: null,
processname: null,
equipmentname: null,
endtime: moment().endOf('day'),
starttime: moment().startOf('day')
},
factoryList: [],
lineList: [],
processList: [],
equipmentList: [],
pageobj: {
pageIndex: 1,
pageSize: null
}
}
},
methods: {
starttimechange (datobj) {
let that = this
let objtime = datobj.clone()
let startSubend = that.convertmilliseconds(datobj) - that.convertmilliseconds(that.efmobj.endtime)
// console.log(startSubend, '======开始减去结束时间的毫秒差值')
switch (this.showtime) {
case 'hour':
if ((startSubend > 0) || (startSubend < (-3600000))) that.efmobj.endtime = objtime.add(1, 'hour')
break
default:
switch (true) {
case startSubend >= 0:
that.efmobj.endtime = objtime.endOf('day')
break
case startSubend < (-604800000):// 7*24*60*60*1000
that.efmobj.endtime = objtime.add(6, 'day').endOf('day')
break
}
}
},
endtimechange (datobj) {
let that = this
let objtime = datobj.clone()
let startSubend = that.convertmilliseconds(datobj) - that.convertmilliseconds(that.efmobj.starttime)
switch (this.showtime) {
case 'hour':
if ((startSubend < 0) || (startSubend > 3600000)) that.efmobj.starttime = objtime.subtract(1, 'hour')
break
default:
switch (true) {
case startSubend < 0:
that.efmobj.starttime = objtime.startOf('day')
break
case startSubend > 604800000:// 7*24*60*60*1000
that.efmobj.starttime = objtime.subtract(6, 'day').startOf('day')
break
}
}
},
convertmilliseconds (timestr) {
// console.log(timestr.format())
let datastr = timestr.format()
let YYYY = datastr.slice(0, 4)
let MM = datastr.slice(5, 7)
let DD = datastr.slice(8, 10)
let hh = datastr.slice(11, 13)
let mm = datastr.slice(14, 16)
let ss = datastr.slice(17, 19)
let millisenconds = Date.UTC(YYYY, MM, DD, hh, mm, ss)
// console.log(millisenconds, '======', YYYY, MM, DD, hh, mm, ss)
return millisenconds
},
}
网友评论