time.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. let now = new Date();
  2. let year = now.getFullYear();
  3. let month = now.getMonth();//真实的月份需要再加上1
  4. let day = now.getDate();
  5. let currentTime = new Date();
  6. function dealChatTime(currentItemTimeStamp, frontItemTimeStamp) {
  7. let ifShowTime = timeDivide(currentItemTimeStamp, frontItemTimeStamp);
  8. return justSimpleDealTime(currentItemTimeStamp, ifShowTime);
  9. }
  10. function timeDivide(currentItemTimeStamp, frontItemTimeStamp) {
  11. // console.log('时间戳显示时间', currentItemTimeStamp, frontItemTimeStamp);
  12. return Math.abs(currentItemTimeStamp - frontItemTimeStamp) / 1000 > 300
  13. }
  14. function justSimpleDealTime(currentItemTimeStamp, ifShowTime) {
  15. currentTime.setTime(currentItemTimeStamp);
  16. let hoursAndMinutes = currentTime.getHours() + ':' + (currentTime.getMinutes() >= 10 ? currentTime.getMinutes() : ('0' + currentTime.getMinutes()));
  17. let currentTimeDay = currentTime.getDate();
  18. if (currentTime.getFullYear() === year && currentTime.getMonth() === month) {
  19. if (currentTimeDay === day) {//当天显示时分
  20. return {//5分钟内发送多条消息时不重复显示时间标签,大于5分钟显示时间标签
  21. ifShowTime: ifShowTime,
  22. timeStr: hoursAndMinutes
  23. };
  24. } else if (currentTimeDay === day - 1) {//昨天:昨天+时分(24小时制)
  25. return {ifShowTime: ifShowTime, timeStr: '昨天 ' + hoursAndMinutes}
  26. }
  27. }
  28. return {
  29. ifShowTime: ifShowTime,
  30. timeStr: currentTime.getFullYear() + '年' + (currentTime.getMonth() + 1) + '月' + currentTimeDay + '日 ' + hoursAndMinutes
  31. };
  32. }
  33. module.exports = {
  34. dealChatTime
  35. };