JS计算当日凌晨0时0分0秒

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可换其他单位

各有所好,哪种方式方便用哪种

你可能感兴趣的:(JS计算当日凌晨0时0分0秒)