js获取当日凌晨 00:00:00 时间
第一种: 根据时间戳计算 00:00:00 时间 (同样也可以根据求余来计算)
// 1. 获取当前时间戳 - 秒
var currTs = Date.now() / 1000
// 2. 获取日总秒数 = 时*分*秒
var dayTs = 24 * 60 * 60
// 3. 求总天数,用parseInt,去掉小数位
var dayTotal = parseInt(currTs / dayTs)
// 4. 求出当日开始时秒数
var dayZeroTs = dayTotal * dayTs
// 以为结束了? No, 记得去掉减去时差
// 5. 去掉时差(返回的是分),需要转成秒
var offset = new Date().getTimezoneOffset() * 60 // -480
// over~ 得到了今日凌晨的秒数,转换日期需要换成毫秒数
var zeroDate = new Date((dayZeroTs + offset) * 1000)
console.log(zeroDate)
// 简写
var d = new Date()
var ts = 86400
var date = new Date(((parseInt(d.getTime() / 1000 / ts) * ts) + (d.getTimezoneOffset() * 60))*1000)
console.log(date)
第二种:直接修改时分秒
// 1. 获得当前时间
var date = new Date()
// 2. 时分秒归零
date.setHours(0)
date.setMinutes(0)
date.setSeconds(0)
console.log(date)
第三种:使用moment.js
moment( date ).startOf('day'); // 当日起始时间
moment( date ).endOf('day'); // 当日结束时间
同理,day可换其他单位
各有所好,哪种方式方便用哪种