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.

301 lines
8.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 获取本周一时间
* @returns {number}
*/
import moment from "moment";
export const getWeekDay = () => {
//起止日期数组
var startStop = [];
//获取当前时间
var currentDate = new Date();
//返回date是一周中的某一天
var week = currentDate.getDay();
//返回date是一个月中的某一天
var month = currentDate.getDate();
//一天的毫秒数
var millisecond = 1000 * 60 * 60 * 24;
//减去的天数
var minusDay = week != 0 ? week - 1 : 6;
//alert(minusDay)
//本周 周一
var monday = new Date(currentDate.getTime() - (minusDay * millisecond));
//本周 周日
var sunday = new Date(monday.getTime() + (6 * millisecond));
monday = monday.getFullYear() + "-" + (monday.getMonth() + 1) + "-" + monday.getDate();
sunday = sunday.getFullYear() + "-" + (sunday.getMonth() + 1) + "-" + sunday.getDate();
var week_day = {
monday: monday,
sunday: sunday,
};
return week_day
};
/**
* 格式化相对时间
* @returns {string}
* @param value
* @param now
*/
export const relativelyTime = (value, now) => {
if (!now) {
now = moment();
}
const diff = moment(now).diff(moment(value), 'hours');
if (diff <= 1) {
return moment(value).fromNow();
}
const today = moment(now).get('date');
const current = moment(value).get('date');
if (current < today - 1) {
// return moment(value).format('M月D日 H:mm');
}
let detailTime = moment(value).format('H:mm');
const currentDate = moment(value).format('YYYY-MM-DD');
const currentMonday = moment().weekday(0).format('YYYY-MM-DD');
const currentSunday = moment().weekday(6).format('YYYY-MM-DD');
let weekDate = '';
if (currentDate < currentMonday) {
weekDate = '[上周]dd ' + detailTime;
}else if (currentDate > currentSunday) {
weekDate = '[下周]dd ' + detailTime;
}else{
weekDate = '[周]dd ' + detailTime;
}
return moment(value).calendar(null, {
sameDay: '[今天 ]' + moment(value).format('H:mm'),
nextDay: '[明天 ]' + detailTime,
nextWeek: weekDate,
lastDay: '[昨天 ]' + detailTime,
lastWeek: weekDate,
sameElse: 'M月D日 H:mm'
});
};
/**
*
* @param value 日期
* @param showDetailTime 是否显示具体时间
* @returns {string}
*/
export const relativelyTaskTime = (value, showDetailTime = false) => {
let detailTime = moment(value).format('H:mm');
if (!showDetailTime) {
detailTime = '';
}
const currentDate = moment(value).format('YYYY-MM-DD');
const currentMonday = moment().weekday(0).format('YYYY-MM-DD');
const currentSunday = moment().weekday(6).format('YYYY-MM-DD');
let weekDate = '';
if (currentDate < currentMonday) {
weekDate = '[上周]dd ' + detailTime;
}else if (currentDate > currentSunday) {
weekDate = '[下周]dd ' + detailTime;
}else{
weekDate = '[周]dd ' + detailTime;
}
return moment(value).calendar(null, {
sameDay: '[今天 ]' + moment(value).format('H:mm'),
nextDay: '[明天 ]' + detailTime,
nextWeek: weekDate,
lastDay: '[昨天 ]' + detailTime,
lastWeek: weekDate,
sameElse: 'M月D日 H:mm'
});
};
export const formatTaskTime = (begin, end) => {
//如果不是今天则不显示具体时间
if (!end && begin) {
return relativelyTaskTime(begin) + ' 开始';
}
if (!begin) {
return relativelyTaskTime(end) + ' 截止';
}
};
/**
* 格式化时间
* @param data
* @param show
* @returns {string}
*/
export const format_date = (data, show) => {
if (show == undefined) {
show = true
}
//格式化时间
let now = new Date(data * 1000);
let year = now.getFullYear();
let month = now.getMonth() + 1;
let date = now.getDate();
let hour = now.getHours();
let minute = now.getMinutes();
// let second = now.getSeconds();
if (month < 10) {
month = '0' + month;
}
if (date < 10) {
date = '0' + date;
}
if (hour < 10) {
hour = '0' + hour;
}
if (minute < 10) {
minute = '0' + minute;
}
const finally_date = {
year: year,
month: month,
day: date,
hour: hour,
minute: minute
};
if (show) {
return year + "-" + month + "-" + date + " " + hour + ":" + minute;
} else {
return finally_date
}
};
export const formatDateNow = (day) => {
//格式化时间
if (day == undefined) {
day = 0;
}
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
let date = now.getDate() + day;
if (month < 10) {
month = '0' + month;
}
if (date < 10) {
date = '0' + date;
}
return year + "-" + month + "-" + date;
};
/**
* 格式化项目任务时间
* @param begin_time
* @param end_time
* @returns {string}
*/
export const showTaskTime = (begin_time, end_time) => {
let task_time = '';
let begin_time_format = '';
let end_time_format = '';
begin_time = Date.parse(new Date(begin_time)) / 1000;
end_time = Date.parse(new Date(end_time)) / 1000;
if (begin_time > 0) {
let begin = format_date(begin_time, false);
begin_time_format = begin.month + '月' + begin.day + '日' + ' - '
}
if (end_time > 0) {
let end = format_date(end_time, false);
end_time_format = end.month + '月' + end.day + '日';
if (end.hour > 12 && end.hour <= 18) {
end_time_format += ' 下午下班前'
}
if (end.hour > 18) {
end_time_format += ' 加班'
}
if (end.hour <= 12 && end.hour >= 8) {
end_time_format += ' 上午下班前'
}
if (end.hour < 8 && end.hour > 0) {
end_time_format += ' 通宵'
}
}
if (begin_time_format == '') {
end_time_format += '完成'
}
task_time += begin_time_format + end_time_format;
return task_time
};
/**
*
* @returns {string}
* @param time
*/
export const showHelloTime = (time) => {
let time_format = '';
if (time == undefined) {
time = new Date();
}
let hr = time.getHours();
if ((hr >= 0) && (hr <= 4))
time_format = "深夜了,注意身体,";
if ((hr >= 4) && (hr < 7))
time_format = "清晨好, ";
if ((hr >= 7) && (hr < 12))
time_format = "早安,";
if ((hr >= 12) && (hr <= 13))
time_format = "午饭时间到了,";
if ((hr >= 13) && (hr <= 17))
time_format = "下午好,";
if ((hr >= 17) && (hr <= 18))
time_format = "进入傍晚了,";
if ((hr >= 18) && (hr <= 20))
time_format = "吃过晚饭了吗,";
if ((hr >= 20) && (hr <= 24))
time_format = "在加班吗?辛苦了,";
return time_format
};
/**
* 格式化日期对象
* @returns {string}
* @param date
* @param format
*/
export const dateFormat = (date, format) => {
let o = {
"M+": date.getMonth() + 1, //month
"d+": date.getDate(), //day
"h+": date.getHours(), //hour
"m+": date.getMinutes(), //minute
"s+": date.getSeconds(), //second
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
"S": date.getMilliseconds() //millisecond
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1,
(date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (let k in o) if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
return format;
};
/**
* 数字转英文字母
* 如1->A
* @param num
* @returns {string}
*/
export const convert = (num) => {
let result = "";
while (num) {
result = String.fromCharCode(--num % 26 + 65) + result;
num = Math.floor(num / 26)
}
return result
};
export const formatDateTime = (inputTime) => {
var date = new Date(inputTime);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
}