/* eslint-disable @tuya-fe/i18n-detection */
import moment from 'moment'
const defaultFormat = 'YYYY-MM-DD'
// 获取时间格式: 毫秒
export const formatDate = (
date?: moment.MomentInput | string,
format = defaultFormat,
defaultValue = '-',
): string => {
if (date) {
return moment(date).format(format)
}
return defaultValue
}
export const getMoment = (date) => moment(date)
// 获取当日0点时间
export const getStartTime = (date: any) => {
return new Date(new Date(date).toLocaleDateString()).getTime()
}
// 获取当日23点59分时间
export const getEndTime = (date: any) => {
const dayDate = 24 * 60 * 60 * 1000 - 1
return new Date(new Date(new Date(date).toLocaleDateString()).getTime() + dayDate).getTime()
}
/**
* 毫秒转化为天小时分钟秒
* @param msParams 毫秒值
* @return string
*/
export const formatTimeMsToString = (msParams: number | string) => {
const ms = +msParams
const ss = 1000
const mi = ss * 60
const hh = mi * 60
const dd = hh * 24
const day = parseInt(`${ms / dd}`)
const hour = parseInt(`${(ms - day * dd) / hh}`)
const minute = parseInt(`${(ms - day * dd - hour * hh) / mi}`)
const second = parseInt(`${(ms - day * dd - hour * hh - minute * mi) / ss}`)
if (!day && !hour && !minute && !!second) {
return '<1分钟'
}
let str = ''
if (day > 0) {
str = `${str}${day}天`
}
if (hour > 0) {
str = `${str}${hour}小时`
}
if (minute > 0) {
str = `${str}${minute}分钟`
}
// if (second > 0) {
// str = `${str}${second}秒`
// }
return str
}
// 相对时间
export const toDuration = function (val) {
const cTime = new Date().getTime() // 当前时间
const tTime = val // 目标时间
const diffTime = cTime - tTime
//秒-分-时-日-月-年
//console.info(diffTime);
if (diffTime < 1000) {
return '刚刚'
} else if (diffTime <= 60000) {
// (60 * 1000)
return Math.round(diffTime / 1000) + '秒前'
} else if (diffTime <= 3600000) {
// (60 * 60 * 1000)
return Math.round(diffTime / 60000) + '分钟前' // (60 * 1000)
} else if (diffTime <= 86400000) {
// (24* 60 * 60 * 1000)
return Math.round(diffTime / 3600000) + '时前' // (60 * 60 * 1000)
} else if (diffTime <= 2592000000) {
// (30 * 24 * 60 * 60 * 1000)
return Math.round(diffTime / 86400000) + '天前' // (24 * 60 * 60 * 1000)
} else if (diffTime <= 31104000000) {
// (12 * 30 * 24 * 60 * 60 * 1000)
return Math.round(diffTime / 2592000000) + '月前' // (30 * 24 * 60 * 60 * 1000)
} else {
return Math.round(diffTime / 31104000000) + '年前' // (12 * 30 * 24 * 60 * 60 * 1000)
}
}
export const HoursTip = function () {
const date = new Date()
let hoursTip = ''
if (date.getHours() >= 0 && date.getHours() < 12) {
hoursTip = '上午好'
} else if (date.getHours() >= 12 && date.getHours() < 18) {
hoursTip = '下午好'
} else {
hoursTip = '晚上好'
}
return hoursTip
}