項目開發過程中,聊天模塊需要對信息時間進行處理(聊天用的環信sdk),自己寫了一個插件如下:
定義一個函數showMessageTime(timestamp,timeShowPlance), 有兩個參數,第一個參數接收時間戳,第一個參數接收顯示的地點,如果是列表界面,則對應周幾時不顯示後面具體的時間;如果是聊天頁面,則除了顯示周幾 還顯示具體的消息時間(時、分)
function showMessageTime(timestamp,timeShowPlace){
/** 消息發送時間 **/
timestamp = parseInt(timestamp)
var msgTime = new Date(timestamp);
var msgTimeYear = msgTime.getUTCFullYear()
var msgTimeMonth = (msgTime.getUTCMonth()+1)
var msgTimeDate = msgTime.getUTCDate()
var hms = "";
hms += " " + msgTime.getHours() + ":"
hms += " " + msgTime.getMinutes() >= 10 ? msgTime.getMinutes():'0'+msgTime.getMinutes()
/** 獲取本地時間 **/
var myDate = new Date();
var myDateYear = myDate.getUTCFullYear()
var myDateMonth = myDate.getUTCMonth()+1
var myDateDate = myDate.getUTCDate()
var dateMinus = msgTimeDate - myDateDate
/** 消息發送時間和本地時間爲同一天 **/
if (msgTimeYear == myDateYear && msgTimeMonth == myDateMonth && msgTimeDate == myDateDate) {
return hms;
}
/** 消息發送時間在一週範圍內 **/
else if (msgTimeYear == myDateYear && msgTimeMonth == myDateMonth && dateMinus >= -6 && dateMinus <= -1){
for (var i = 0 ; i <= 6 ; i++){
if( myDate.getDay() == i) {
console.log('i='+i)
if (dateMinus == -6) {
return '周'
+ (i==0?'一':(i==1?'二':(i==2?'三':(i==3?'四':(i==4?'五':(i==5?'六':(i==6?'日':' ')))))))
+ ' ' + (timeShowPlace=="messageList"?'':hms)
} else if (dateMinus == -5) {
return '周'
+(i==0?'二':(i==1?'三':(i==2?'四':(i==3?'五':(i==4?'六':(i==5?'日':(i==6?'日':' ')))))))
+ ' ' + (timeShowPlace=="messageList"?'':hms)
} else if (dateMinus == -4) {
return '周'
+(i==0?'三':(i==1?'四':(i==2?'五':(i==3?'六':(i==4?'日':(i==5?'一':(i==6?'二':' ')))))))
+ ' ' + (timeShowPlace=="messageList"?'':hms)
} else if (dateMinus == -3) {
return '周'
+(i==0?'四':(i==1?'五':(i==2?'六':(i==3?'日':(i==4?'一':(i==5?'二':(i==6?'三':' ')))))))
+ ' ' + (timeShowPlace=="messageList"?'':hms)
} else if (dateMinus == -2) {
return '周'
+(i==0?'五':(i==1?'六':(i==2?'日':(i==3?'一':(i==4?'二':(i==5?'三':(i==6?'四':' ')))))))
+ ' ' + (timeShowPlace=="messageList"?'':hms)
} else {
return '昨天'
}
}
}
}
/** 消息發送時間在一週範圍外 **/
else {
//console.log('一週範圍外:'+dateMinus)
return msgTimeYear+'/'+msgTimeMonth+'/'+msgTimeDate
}
}