1、获取指定日期时间
若需要自定义格式,请自行拓展。
/**
* 获取指定日期时间
* @param {date, diffDay, format, connect}={时间,时间差值(天),格式,连接符}
*/
const getCurrentTime = (date, format, diffDay, connect) => {
var Y = date.getFullYear(); //得到年份
var M = date.getMonth() + 1;//得到月份
var D = date.getDate();//得到日期
var WN = date.getDay();//得到周几
var HH = date.getHours();//得到小时
var MM = date.getMinutes();//得到分钟
var SS = date.getSeconds();//得到秒
var MS = date.getMilliseconds();//获取毫秒
if (diffDay) {
if (D === 1) {
if (M === 1) {
Y -= 1;
M = 12;
D = 31 - diffDay + 1;
} else {
M -= 1;
if ([4, 6, 9, 11].includes(M)) {
D = 30 - diffDay + 1;
} else if (M === 2) {
const day = Y%4 ? 28 : 29;
D = day - diffDay + 1;
} else {
D = 31 - diffDay + 1;
}
}
} else {
D = diffDay ? (D - diffDay) : D;
}
}
// 小于0就前面补零
if (M < 10) M = "0" + M;
if (D < 10) D = "0" + D;
if (HH < 10) HH = "0" + HH;
if (MM < 10) MM = "0" + MM;
if (SS < 10) SS = "0" + SS;
if (MS < 100) MS = "0" + MS;
// 一周列表
var arr_week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
var W = arr_week[WN];
return {
time: Y + "年" + M + "月" + D + "日" + " " + HH + ":" + MM + ":" + SS + ":" + MS + " " + W,
Y: Y,
M: M,
D: D,
HH: HH,
MM: MM,
SS: SS,
MS: MS,
W: W
};
}
// 使用案例
const date = new Date();
getCurrentTime(date);
// {time: "2021年06月02日 17:00:32:182 星期三", Y: 2021, M: "06", D: "02", HH: 17, …}
2、将时间转化为时间戳
/**
* 将时间转化为时间戳
* @param {time}={时间}
*/
const timeToTimestamp = (time) => {
return new Date(time).getTime();
}
// 使用案例
timeToTimestamp('2020-03-15 21:21:21');// 1584278481000
3、计算两个时间戳相差的时间
/**
* 计算两个时间戳相差的时间
* @param {begin_time, end_time}={一个时间戳,另一个时间戳}
*/
const timeDiff = (begin_time, end_time) => {
const diffTime = {
day: 0,
hour: 0,
min: 0,
sec: 0
}
const diff = Math.abs(end_time - begin_time);
const remain_hour = diff % (24 * 60 * 60);
const remain_min = remain_hour % (60 * 60);
diffTime.day = Math.floor(diff / (24 * 60 * 60));
diffTime.hour = Math.floor(remain_hour / (60 * 60));
diffTime.min = Math.floor(remain_min / 60);
diffTime.sec = remain_min % 60;
return diffTime;
}
// 使用案例
const beginTime = new Date('2020-03-15 20:20:20').getTime();
const endtime = new Date('2021-03-15 21:21:21').getTime();
timeDiff(beginTime, endtime);// {day: 365042, hour: 8, min: 56, sec: 40}
4、ios 中 ‘y-m-d hⓂ️s’ 转时间戳为 NaN
let time = '2020-11-17'
let formateTime = time.replace(/-/g, '/')
const timeStamp = new Date(formateTime).getTime()