根据用户生日计算星座,用于展示性标签
/**
*根据生日计算星座
*
*
* @param {Number} month
* @param {Number} day
* @returns String 所属星座
*/
const getAstro=(month, day)=> {
const s = '魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯'
const arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]
return s.substr(month * 2 - (day < arr[month - 1] ? 2 : 0), 2)
}
console.log(getAstro(8,28))//=>处女
时间格式化为‘XXX前’:常用于文章/评论发布时间
/**
*
*
*
* @param {String} timeStr 格式如'2019-2-10 10:22:24'
* @param {Number} day
* @returns String 刚刚,XX分钟前,XX小时前,XX天前...
*/
const getDateDiff = timeStr => {
timeStr = timeStr.replace(/-/g, '/') // 修复ios上计算时间返回NaN的bug
const time = new Date(timeStr)
const dateTimeStamp = time.getTime()
// return dateTimeStamp
let minute = 1000 * 60
let hour = minute * 60
let day = hour * 24
let month = day * 30
let year = month * 12
let now = new Date().getTime()
let diffValue = now - dateTimeStamp
if (diffValue < 0) {
return
}
let yearC = Math.floor(diffValue / year)
let monthC = Math.floor(diffValue / month)
let weekC = Math.floor(diffValue / (7 * day))
let dayC = Math.floor(diffValue / day)
let hourC = Math.floor(diffValue / hour)
let minC = Math.floor(diffValue / minute)
if (yearC >= 1) {
return yearC + '年前'
}
if (monthC >= 1) {
return monthC + '月前'
}
if (weekC >= 1) {
return weekC + '周前'
}
if (dayC >= 1) {
return dayC + '天前'
}
if (hourC >= 1) {
return hourC + '小时前'
}
if (minC >= 1) {
return minC + '分钟前'
}
return '刚刚'
}
console.log(getDateDiff('2019-2-10 12:23:24'))//=>4周前