公司这次的一个项目,对时间处理,相互转化,弄得我烦不胜烦,因此,都记录下来,方便自己也方便他人。若有什么遗落的,望提醒,我补充!
注:使用框架的朋友,为了代码的整洁与后期维护,使用引入的方式更佳
在开始之前给兄弟们一些备注:
时间戳:1593436890378
中国标准时间: Mon Jun 29 2020 21:21:59 GMT+0800 (中国标准时间)
标准时间: 2020-06-29 00:00:00
时间戳转标准时间
export default {
// js时间戳转化成日期格式
timestampToTime(timestamp) {
const date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
const Y = date.getFullYear() + '-';
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
const m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
const s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
return Y + M + D + h + m + s;
}
};
中国标准时间转标准时间
export default {
// 中国标准时间 转时间格式
formatDate(time, format) {
const t = new Date(time);
const tf = function (i) {
return (i < 10 ? '0' : '') + i;
};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, (a) => {
switch (a) {
case 'yyyy':
return tf(t.getFullYear());
case 'MM':
return tf(t.getMonth() + 1);
case 'mm':
return tf(t.getMinutes());
case 'dd':
return tf(t.getDate());
case 'HH':
return tf(t.getHours());
case 'ss':
return tf(t.getSeconds());
default:
break;
}
});
}
};
// 使用
formatDate(date, "yyyy-MM-dd HH:mm:ss")
标准时间转中国标准时间
let time = new Date('2020-12-12 00:00:00') // Sat Dec 12 2020 00:00:00 GMT+0800 (中国标准时间)
时间戳转中国标准时间
时间戳转标准时间 ==> 再转中国标准时间
中国标准时间转时间戳
let a = new Date('Mon Jun 29 2020 21:21:59 GMT+0800 (中国标准时间)').getTime() // 1593436919000
标准时间转时间戳
let time = new Date('2020-12-12 00:00:00').getTime(); // 12174367811
秒数转化成时间段(多少时间前)
export default {
// 秒数转化成时间段
formatSeconds(value) {
let secondTime = parseInt(value); // 秒
let minuteTime = 0;// 分
let hourTime = 0;// 小时
if (secondTime > 60) {// 如果秒数大于60,将秒数转换成整数
// 获取分钟,除以60取整数,得到整数分钟
minuteTime = parseInt(secondTime / 60);
// 获取秒数,秒数取佘,得到整数秒数
secondTime = parseInt(secondTime % 60);
// 如果分钟大于60,将分钟转换成小时
if (minuteTime > 60) {
// 获取小时,获取分钟除以60,得到整数小时
hourTime = parseInt(minuteTime / 60);
// 获取小时后取佘的分,获取分钟除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result = "" + parseInt(secondTime) + "秒";
if (minuteTime > 0) {
result = "" + parseInt(minuteTime) + "分" + result;
}
if (hourTime > 0) {
result = "" + parseInt(hourTime) + "时" + result;
}
return result;
}
};
封装时间处理函数 (多久之前的时间处理函数)
export default {
timeMaker(t) {
let result;
const date = new Date(t); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
csont now = new Date();
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 NY = now.getFullYear();
let NM = now.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
let ND = now.getDate();
let Nh = now.getHours();
let Nm = now.getMinutes();
let Ns = now.getSeconds();
if(NY-Y>0){
result = NY-Y+"年前"
}else if(NM-M>0){
result = NM-M+"月前"
}else if(ND-D>0){
result = ND-D+"天前"
}else if(Nh-h>0){
result = Nh-h+"时前"
}else if(Nm-m>0){
result = Nm-m+"分前"
}else if(Ns-s>0){
result = Ns-s+"秒前"
}
return result
},
}
点击对应的选择对应的时间段
方法一:例举点击 昨天
getTime() {
let startTime= new Date().getTime() // 获取当前的时间戳
// 当天的时间抽减去 24小时 getDate函数是时间戳转为标准时间函数 上面有
startTime= getDate((today - 24 * 60 * 60 * 1000) / 1000)
// 将标准时间转为为中国标准时间 便于修改
// 中国标准时间可以修改时间 标准时间不能修改
startTime = new Date(startTime)
// 整合写法
//const startTime = new Date(getDate((new Date().getTime() - 24 * 60 * 60 * 1000) / 1000))
let endTime = startTime
this.customMytime(startTime, endTime)
}
customMytime(startTime, endTime){
startTime.setHours(0)
startTime.setMinutes(0)
startTime.setSeconds(0)
endTime.setHours(23)
endTime.setMinutes(59)
endTime.setSeconds(59)
console.log(startTime, endTime)
// 根据框架需要什么格式的时间 进行最后一步的处理 便可以
}
方法二: 引入插件 moment.js
import moment from './moment.js';
// 获取今日/昨日/本周/上周时间
export default {
// 获取今日的开始结束时间
getToday() {
const obj = {
startTime: '',
endTime: ''
};
obj.startTime = moment(moment().startOf('day').valueOf()).format('YYYY-MM-DD HH:mm:ss');
obj.endTime = moment(moment().valueOf()).format('YYYY-MM-DD HH:mm:ss');
return obj;
},
// 获取昨日的开始结束时间
getYesterday() {
const obj = {
startTime: '',
endTime: ''
};
obj.startTime = moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY-MM-DD HH:mm:ss');
obj.endTime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY-MM-DD HH:mm:ss');
return obj;
},
// 获取当前周的开始结束时间
getCurrWeekDays() {
const obj = {
startTime: '',
endTime: ''
};
obj.startTime = moment(moment().week(moment().week()).startOf('week').add(1, 'days')
.valueOf()).format(
'YYYY-MM-DD HH:mm:ss'
);
obj.endTime = moment(moment().week(moment().week()).endOf('week').add(1, 'days')
.valueOf()).format(
'YYYY-MM-DD HH:mm:ss'
);
return obj;
},
// 获取上一周的开始结束时间
getLastWeekDays() {
const obj = {
startTime: '',
endTime: ''
};
obj.startTime = moment(moment().week(moment().week() - 1).startOf('week').add(1, 'days')
.valueOf()).format(
'YYYY-MM-DD HH:mm:ss'
);
obj.endTime = moment(moment().week(moment().week() - 1).endOf('week').add(1, 'days')
.valueOf()).format(
'YYYY-MM-DD HH:mm:ss'
);
return obj;
}
};
//使用
let time = getToday() // 获取今天的方法
const { startTime, endTime } = time;
console.log(startTime, endTime)
最近公司业务繁忙,加个班,写个记录,有错误的,希望大佬不吝赐教,有您帮助的,不要吝啬赞赞哈~~哈哈哈