在日常工作中,对于时间的处理,还是用的比较多的,最近有空把自己日常工作处理时间的整理出来,如果觉得有帮助的话记得点赞关注,谢谢了
获取指定时间的时间戳
let starttime = new Date('2018.1.1 00:00').getTime()
let endtime = new Date('2099.12.30 23:59').getTime()
获取当前月的 第一天 和最后一天
let date = new Date();
let starttime = new Date(date.getFullYear(), date.getMonth(), 1).getTime();
let endtime = new Date(date.getFullYear(), date.getMonth() + 1, 0).getTime();
获取当日的 00:00:00 - 23:59:59
let starttime = new Date(new Date(new Date().toLocaleDateString()).getTime()).getTime()
let endtime = new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 -1).getTime()
封装方法
const getTodayStart = () => {
let now = new Date();
return strToDate(formatTime(now).split(' ')[0] + ' 00:00:00');
}
// 日期 23点
const getTodayEnd = () => {
let now = new Date();
return strToDate(formatTime(now).split(' ')[0] + ' 23:59:59');
}
获取最近12小时 和当前时间
let starttime = new Date(new Date().getTime() - 12 * 60 * 60 * 1000).getTime(); //前12个小时
let endtime = new Date().getTime()
获取最近1个月 和当前时间
let nowdate = new Date();
let starttime = nowdate.setMonth(nowdate.getMonth()-1) //前一个月
let endtime = new Date().getTime()
获取最近1年 和当前时间
let pre = new Date()
let starttime = pre.setFullYear(pre.getFullYear()-1) //前一年
let endtime = new Date().getTime()
时间戳转日期的方法
let date = new Date(时间戳)
let time = formatTime(date)
// 时间戳转成日期
const formatTime = (date, flag) => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
let result = [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
if (flag) {
result = result.replace(/\-|\:|\s/g, '')
}
return result
}
小程序 处理时间日期,在ios手机下日期问题
const strToDate = (str) => {
// let d = new Date(str)
let d = null;
if (typeof str === 'object' || typeof str === 'number') return new Date(str);
if (!str) return new Date();
str = str.replace('T', ' ').replace(/\//g, '-');
//if(d == null) {
let date = str.split('.')[0].split(' ')
let days = date[0].split('-')
let times = date.length == 1 ? ['00', '00', '00'] : date[1].split(':')
d = new Date()
d.setFullYear(days[0])
d.setMonth(parseInt(days[1]) - 1)
d.setDate(days[2])
d.setHours(times[0])
d.setMinutes(times[1])
d.setSeconds(times[2])
if (d.getHours() != times[0]) {
d.setHours(parseInt(times[0]) + 8)
}
//}
// console.log('over:', str, ',', d);
return d
}
16进制转10进制
const hex2int = (hex) => {
var len = hex.length, a = new Array(len), code;
for (var i = 0; i < len; i++) {
code = hex.charCodeAt(i);
if (48<=code && code < 58) {
code -= 48;
} else {
code = (code & 0xdf) - 65 + 10;
}
a[i] = code;
}
return a.reduce(function(acc, c) {
acc = 16 * acc + c;
return acc;
}, 0)
}
16进制转10进制转时间戳
let water = util.hex2int(historyWaterLog[0].waterTime) *1000
16进制转10进制转秒
let water = util.hex2int(historyWaterLog[0].waterTime)
// 转成天+小时+秒
const secondRe = (time) => {
var result = "0秒";
if(time == undefined){
return result;
}
time = parseInt(time);
if (time != null && time > 0) {
if (time < 60) {
result = time + "秒";
} else if (time > 60 && time < 60 * 60) {
result = parseInt(time / 60 % 60) + "分" + parseInt((time % 60) % 60) + "秒";
} else if (time >= 60 * 60 && time < 60 * 60 * 24) {
result = parseInt(time / 60 / 60 % 24) + "时" + parseInt(time / 60 % 60) + "分" ;
} else if (time >= 60 * 60 * 24 && time < 60 * 60 * 24 * 365) {
result = parseInt(time / 24 / 60 / 60 % 365) + "天" + parseInt(time / 60 / 60 % 24) + "时"+ parseInt(time / 60 % 60) + "分";
}
// else if (time > 60 * 60 * 24 * 365) {
// result = parseInt((time / 24 / 60 / 60 / 30)) + "年" + parseInt(time / 24 / 60 / 60 % 365) + "天" ;
// }
else {
result = time + "秒";
}
}
return result;
}