You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

201 lines
3.9 KiB

const timeText = (time, format) => {
if (format == null) {
format = "yyyy-MM-dd HH:mm:ss"
}
let timeStr = "";
let todayEndTime = getTodayEndTime();
let todayStartTime = getTodayStartTime();
let thisWeekStartTime = getThisWeekStartTime();
console.log("kaishi" + todayStartTime)
console.log("jieshu" + thisWeekStartTime)
// 今天23:59:59:999之后
if (time > todayEndTime) {
// 显示年月日
timeStr = timeFormat(time, format)
} else if (thisWeekStartTime > time) {
// 此周前(本周星期一之前)
let i = format.indexOf(" ");
let formatStyle = format.substring(i + 1);
let formatNew = timeFormat(time, formatStyle);
if (time > todayStartTime - 86399999 && time < todayStartTime) {
// 显示昨天
timeStr = "昨天 " + formatNew;
} else {
timeStr = timeFormat(time, format)
}
} else {
// 显示星期 时分
let i = format.indexOf(" ");
let formatStyle = format.substring(i + 1);
let formatNew = timeFormat(time, formatStyle);
if (todayStartTime - 86399999 > time) {
// 显示星期
timeStr = getWeekStr(time) + " " + formatNew
} else if (time > todayStartTime - 86399999 && time < todayStartTime) {
// 显示昨天
timeStr = "昨天 " + formatNew;
} else {
// 显示
timeStr = formatNew;
}
}
return timeStr
}
/**
* 获取本周开始时间
*/
const getThisWeekStartTime = () => {
let todayEndTime = getTodayEndTime();
var date = new Date();
var weekDays = date.getDay();
var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
var week = weeks[weekDays];
return todayEndTime + 1 - weekDays * 86400000;
}
/**
* 获取今天是周几
*/
const getWeekStr = (time) => {
if (time instanceof Date) {
} else {
let temp = new Date(time);
time = temp;
}
let todayEndTime = getTodayEndTime();
var weekDays = time.getDay();
var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
var week = weeks[weekDays];
return week;
}
/**
* 获取今天开始时间
*/
const getTodayStartTime = () => {
let startTime = 0;
let myDate = new Date();
let current = myDate.getTime();
try {
let format = timeFormat(myDate);
let split = format.split(" ");
let time = split[1].split(":");
startTime = current - time[0] * 60 * 60 * 1000 - time[1] * 60 * 1000 - time[2] * 1000 - time[3]
} catch (e) {
console.log(e)
}
return startTime;
}
/**
* 获取今天结束时间
*/
const getTodayEndTime = () => {
let endTime = 0;
let myDate = new Date();
let current = myDate.getTime();
try {
let format = timeFormat(myDate);
let split = format.split(" ");
let time = split[1].split(":");
let startTime = current - time[0] * 60 * 60 * 1000 - time[1] * 60 * 1000 - time[2] * 1000 - time[3]
endTime = startTime + 86399999;
} catch (e) {
console.log(e)
}
return endTime;
}
/**
* 格式化时间
* 支持时间戳 以及 date类型
*/
const timeFormat = (date, formoat) => {
if (date == undefined || date == null) {
return "";
}
if (date instanceof Date) {
console.log("正确")
} else {
let temp = new Date(Number(date));
date = temp;
}
let fmt = formoat;
if (fmt == null) {
fmt = "yyyy-MM-dd HH:mm:ss:SSS"
}
let ret;
const opt = {
"y+": date.getFullYear().toString(), // 年
"M+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"m+": date.getMinutes().toString(), // 分
"s+": date.getSeconds().toString(), // 秒
"S+": date.getMilliseconds().toString()
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
const currentMillions = () => {
let current = new Date().getTime();
return current;
}
export {
timeText,
timeFormat,
currentMillions,
getWeekStr,
getTodayEndTime
}