持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情
1. 格式化时间 2021-12-31 11:25:11
// 格式化时间 2021-12-31 11:25:11
export function formatTime(timestamp) {
if (!Number(timestamp)) {
return "-";
}
const date = new Date(timestamp * 1000);
const y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? "0" + MM : MM;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
let h = date.getHours();
h = h < 10 ? "0" + h : h;
let m = date.getMinutes();
m = m < 10 ? "0" + m : m;
let s = date.getSeconds();
s = s < 10 ? "0" + s : s;
return y + "-" + MM + "-" + d + " " + h + ":" + m + ":" + s;
}
2. 格式化时间 2021-12-31 上午
export function formatTimeH(timestamp) {
if (!Number(timestamp)) {
return "-";
}
const date = new Date(timestamp * 1000);
const y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? "0" + MM : MM;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
let h = date.getHours();
h = h < 12 ? "上午" : "下午";
return y + "-" + MM + "-" + d + " " + h;
}
3. 格式化时间 2021-12-31
export function formatTimeDay(timestamp) {
if (!Number(timestamp)) {
return "-";
}
const date = new Date(timestamp * 1000);
const y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? "0" + MM : MM;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
return y + "-" + MM + "-" + d ;
}
4. 聊天的时间控制
// 聊天的时间控制
export function chatTime(timestamp) {
if (!Number(timestamp)) {
return "-";
}
const date = new Date(timestamp * 1000);
const y = date.getFullYear();
const yy = y.toString().substr(2, 2);
let MM = date.getMonth() + 1;
MM = MM < 10 ? "0" + MM : MM;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
let h = date.getHours();
h = h < 10 ? "0" + h : h;
let m = date.getMinutes();
m = m < 10 ? "0" + m : m;
let s = date.getSeconds();
s = s < 10 ? "0" + s : s;
var weekday = [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
];
var myddy = date.getDay(); //获取存储当前日期,星期
let days =
(new Date(new Date().setHours(0, 0, 0, 0)).getTime() - timestamp * 1000) /
(24 * 60 * 60 * 1000);
if (days < 0) {
return h + ":" + m;
} else if (days > 0 && days < 1) {
return "昨天" + " " + h + ":" + m;
} else if (days > 1 && days < 7) {
return weekday[myddy] + " " + h + ":" + m;
} else if (days > 7) {
return yy + "/" + MM + "/" + d;
}
}
5. 传入的时间和当前时间的比较
// chatContentTime(1666597442041*1000) =》 当天时间 '15:44'
export function chatContentTime(timestamp) {
if (!Number(timestamp)) {
return "-";
}
const date = new Date(timestamp * 1000);
const y = date.getFullYear();
const yy = y.toString().substr(2, 2);
let MM = date.getMonth() + 1;
MM = MM < 10 ? "0" + MM : MM;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
let h = date.getHours();
h = h < 10 ? "0" + h : h;
let m = date.getMinutes();
m = m < 10 ? "0" + m : m;
let s = date.getSeconds();
s = s < 10 ? "0" + s : s;
var weekday = [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
];
var myddy = date.getDay(); //获取存储当前日期,星期
let days =
(new Date(new Date().setHours(0, 0, 0, 0)).getTime() - timestamp * 1000) /
(24 * 60 * 60 * 1000);
if (days < 0) {
return h + ":" + m;
// 不够一天显示
} else if (days > 0 && days < 1) {
return "昨天" + " " + h + ":" + m;
// 不够一周显示
} else if (days > 1 && days < 7) {
return weekday[myddy] + " " + h + ":" + m;
// 年
} else if (days > 7) {
return y + "年" + MM + "月" + d + "日" + " " + h + ":" + m;
}
}
6.多位数金额 通过 , 分割
moneyFilter('123499') => '123,499'
export function moneyFilter(value) {
if (!value) {
return "0.00";
} else if (
(typeof value == "number" && value.toString().indexOf(".") != -1) ||
(typeof value == "number" && value.toString().indexOf(".") == -1)
) {
value += "";
}
let floatPart;
let isDolt = false;
let value2Array;
if (value.indexOf(".") != -1) {
floatPart = value.split(".")[1];
value2Array = value.split(".");
isDolt = true;
} else {
isDolt = false;
value2Array = [value];
}
let intPartFormat;
intPartFormat = value2Array[0].replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); //将整数部分逢三一断
//=2表示数据有小数位
return isDolt ? intPartFormat + "." + floatPart : intPartFormat;
}
7.超过20位省略
export function ellipsis(value) {
if (!value) return "";
if (value.length > 20) {
return value.slice(0, 20) + "...";
}
return value;
}
8. 员工等级
export function levelWeight(val) {
// 性别 1:男 2:女 0:无
let level = Number(val);
let res = "";
switch (level) {
case 0:
res = "差评过多";
break;
case 10:
res = "初级";
break;
case 20:
res = "中级";
break;
case 30:
res = "高级";
break;
case 40:
res = "金牌";
break;
default:
res = "-";
}
return res;
}
8. 获取一个月的第一天 时间戳
export const firstMonthDay = () => {
let time = new Date()
time.setDate(1) // 将当前日期设置成第一天
let year = time.getFullYear()
let month = time.getMonth() +1
let day = time.getDate()
let firstDay = new Date(year+'-'+month+'-'+day)
return firstDay.getTime()
}
9. 获取一个月的最后一天 时间戳
export const lastMonthDay = () => {
let time = new Date()
let year = time.getFullYear()
let month = time.getMonth()+1
// 这里传入的是整数时间,返回的是下个月的第一天,因为月份是0-11
let nextMonthFirthDay = new Date(year,month,1) // 下个月的第一天
let oneDay = 60*60*24*1000 // 一天的时间毫秒数
let endDay = new Date(nextMonthFirthDay - oneDay)
let day = endDay.getDate() // 本月最后一天
let lastDay = new Date(`${year}-${month}-${day} 23:59:59`)
return lastDay.getTime()
}
10. 获取本月到当前日期的一天
export const oneToCurrentDay = (timeFormat='timestamp') => {
// 时间戳格式
let firstDay = firstMonthDay() // 用的第8条
let currentDay = +new Date()
// 2022-9-1 格式 formatTimeDay用的第3条
let formatFirstDay = formatTimeDay(firstDay/1000)
let formatCurrentDay = formatTimeDay(currentDay/1000)
return timeFormat === 'timestamp' ? [firstDay,currentDay] : [formatFirstDay,formatCurrentDay]
}
11.截取时间 20220901 => 2022-09
export const substrTime = time => {
if(!time){
return '-'
}
let year = time.substr(0,4)
let month = time.substr(4,2)
return `${year}-${month}`
}