飞道的博客

小程序中 时间戳转日期格式(年月日时分秒)封装使用

254人阅读  评论(0)

在 utils 中自行新建文件 tool.js ,放入下放js代码


  
  1. /**
  2. * function: 60秒内(刚刚),60秒至60分钟(**分钟前),1小时至24小时(**小时前),1天至15天(**天前),其他为正常日期显示
  3. * @number 時間戳
  4. */
  5. function formatMsgTime(number) {
  6. var dateTime = new Date(number); // 将传进来的字符串或者毫秒转为标准时间
  7. var Y = dateTime.getFullYear(); // 年
  8. var M = dateTime.getMonth() + 1; // 月
  9. var D = dateTime.getDate(); // 日
  10. var h = dateTime.getHours(); // 时
  11. var m = dateTime.getMinutes(); // 分
  12. var millisecond = dateTime.getTime(); // 将当前编辑的时间转换为毫秒
  13. var now = new Date(); // 获取本机当前的时间
  14. var nowNew = now.getTime(); // 将本机的时间转换为毫秒
  15. var milliseconds = 0;
  16. var numberStr;
  17. milliseconds = nowNew - millisecond;
  18. if (milliseconds <= 1000 * 60 * 1) { // 小于一分钟展示为刚刚
  19. numberStr = '刚刚'
  20. } else if ( 1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { // 大于一分钟小于一小时展示为分钟
  21. numberStr = Math.round((milliseconds / ( 1000 * 60))) + '分钟前'
  22. } else if ( 1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { // 大于一小时小于一天展示为小时
  23. numberStr = Math.round(milliseconds / ( 1000 * 60 * 60)) + '小时前'
  24. } else if ( 1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { // 大于一天小于十五天展示位天
  25. numberStr = Math.round(milliseconds / ( 1000 * 60 * 60 * 24)) + '天前'
  26. } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && Y === now.getFullYear()) {
  27. numberStr = M + '-' + D + ' ' + h + ':' + m
  28. } else {
  29. numberStr = Y + '-' + M + '-' + D + ' ' + h + ':' + m
  30. }
  31. return numberStr
  32. }
  33. /**
  34. * function: 時間戳轉日期
  35. * @number 時間戳
  36. * @type 格式(1為年-月-日 時-分-秒,2為年-月-日)
  37. */
  38. function toDate(number, type) {
  39. var date = new Date(number);
  40. var Y = date.getFullYear();
  41. var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
  42. var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
  43. var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
  44. var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
  45. var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  46. if (type == '1') {
  47. return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
  48. } else if (type == '2') {
  49. return Y + '-' + M + '-' + D;
  50. }
  51. }
  52. module.exports = {
  53. toDate: toDate,
  54. formatMsgTime: formatMsgTime
  55. }

 

formatMsgTime方法,传时间戳(Number)

60秒内——(刚刚)

60秒至60分钟——(**分钟前)

1小时至24小时——(**小时前)

1天至15天——(**天前)

其他为正常日期格式显示

 

toDate方法,传时间戳(Number)和(参数1、2)

1——年月日时分秒

2——年月日

 

 

页面需要使用,引入 

import { toDate,formatMsgTime } from '../../utils/tool.js';

 

使用


  
  1. formatMsgTime( Number)
  2. toDate( Number, 1)

 

formatMsgTime方法一般使用在发帖之类的地方,经常会看到刚刚发布,几分钟前发布,几小时前发布等

toDate方法一般比较常用,后台基本都是给前台反的时间戳,都需要进行转换

【推荐】前端软件下载 http://iqzhan.com/category-23.html

原文地址 http://sharedblog.cn/post/209.html

前端博客 http://sharedblog.cn


转载:https://blog.csdn.net/tianpeng1996/article/details/110536028
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场