仿微信 时间转换成昨天,周几,年月日等
有的时候业务需求要把时间转换成自己想要的格式,
比如微信的时间格式 昨天 12:00 星期一 上午 10:00 或 2020年4月23日 下午 14:00
话不多说代码如下
// 重要的执行方法
function trans(date) {
var timestamp = getTimestamp(date)
var d = new Date(timestamp)
var t = new Date()
var objd = {
'Y': d.getFullYear(),
'm': parseInt(d.getMonth()) + 1,
'd': parseInt(d.getDate()),
'w': d.getDay(),
'H': d.getHours(),
'i': d.getMinutes(),
's': d.getSeconds(),
}
//分钟小于10 加一个0
if(d.getMinutes()<10){
objd.i = '0'+ objd.i
}
var objt = {
'Y': t.getFullYear(),
'm': parseInt(t.getMonth()) + 1,
'd': parseInt(t.getDate()),
'w': t.getDay(),
'H': t.getHours(),
'i': t.getMinutes(),
's': t.getSeconds(),
}
var timeStr = ''
var dayPerMonthAddTime = getDayPerMonth(objd.Y)
var week = ['周日','周一','周二','周三','周四','周五','周六']
if(objd.Y == objt.Y && objd.m == objt.m && objd.d == objt.d) {
//判断当天
timeStr += objd.H + ':' + objd.i
} else if ((objd.Y == objt.Y && objd.m == objt.m && objd.d == objt.d - 1) || (objd.Y == objt.Y && objt.m - objd.m == 1 && dayPerMonthAddTime[objd.m] == objd.d && objt.d == 1) || (objt.Y - objd.Y == 1 && objd.m == 12 && objd.d == 31 && objt.m == 1 && objt.d == 1)) {
//判断昨天
timeStr += '昨天 ' + objd.H + ':' + objd.i + ' '
} else if ((objd.Y == objt.Y && objd.m == objt.m && objt.d - objd.d < 7) || (objd.Y == objt.Y && objt.m - objd.m == 1 && dayPerMonthAddTime[objd.m] - objd.d + objt.d < 7|| (objt.Y - objd.Y == 1 && objd.m == 12 && objt.m == 1 && 31 - objd.d + objt.d < 7))) {
//判断为七天内显示为周几
timeStr += week[objd.w] + ' ' + objd.H + ':' + objd.i
} else {
//直接展示年月日
timeStr += objd.Y + '年' + objd.m + '月' + objd.d + '日 ' + objd.H + ':' + objd.i
}
**#判断上下午,不要可以注释掉**
// if(objd.H < 13) {
// timeStr += ' 上午'
// } else {
// timeStr += ' 下午'
// }
return timeStr
}
function getTimestamp(date) {
return Date.parse(new Date(date))
}
//月份
function getDayPerMonth(year) {
var arr = []
arr[1] = 31
arr[3] = 31
arr[4] = 30
arr[5] = 31
arr[6] = 30
arr[7] = 31
arr[8] = 31
arr[9] = 30
arr[10] = 31
arr[11] = 30
arr[12] = 31
//闰年
if((year%4 == 0 && year%100 != 0) || (year%400 == 0)) {
arr[2] = 29
} else {
arr[2] = 28
}
return arr
}
**#最后不要忘了把方法导出**
module.exports = {
trans
}
使用方法
该代码是在微信小程序utils文件里的,如需使用 文件名.方法名(要转换的时间)
例子:utils.trans(‘2020-04-23 12:00’)
注意注意注意 ios设备需要转化时间格式为2020/04/23 12:00
实现效果
今天的时间:
昨天的时间:
星期几的时间:
年月日的时间:
拜拜~~