ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-03-02 15:32:35  阅读:203  来源: 互联网

标签:formatMsgTime 封装 number dateTime 60 date var 年月日 时分秒


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

/**
 * function: 60秒内(刚刚),60秒至60分钟(**分钟前),1小时至24小时(**小时前),1天至15天(**天前),其他为正常日期显示
 * @number   時間戳
 */
function formatMsgTime(number) {
  var dateTime = new Date(number); // 将传进来的字符串或者毫秒转为标准时间
  var Y = dateTime.getFullYear(); // 年
  var M = dateTime.getMonth() + 1; // 月
  var D = dateTime.getDate(); // 日
  var h = dateTime.getHours(); // 时
  var m = dateTime.getMinutes(); // 分
  var millisecond = dateTime.getTime(); // 将当前编辑的时间转换为毫秒
  var now = new Date(); // 获取本机当前的时间
  var nowNew = now.getTime(); // 将本机的时间转换为毫秒
  var milliseconds = 0;
  var numberStr;
  milliseconds = nowNew - millisecond;
  if (milliseconds <= 1000 * 60 * 1) { // 小于一分钟展示为刚刚
    numberStr = '刚刚'
  } else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { // 大于一分钟小于一小时展示为分钟
    numberStr = Math.round((milliseconds / (1000 * 60))) + '分钟前'
  } else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { // 大于一小时小于一天展示为小时
    numberStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前'
  } else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { // 大于一天小于十五天展示位天
    numberStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前'
  } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && Y === now.getFullYear()) {
    numberStr = M + '-' + D + ' ' + h + ':' + m
  } else {
    numberStr = Y + '-' + M + '-' + D + ' ' + h + ':' + m
  }
  return numberStr
}
 
/**
 * function: 時間戳轉日期
 * @number   時間戳
 * @type     格式(1為年-月-日 時-分-秒,2為年-月-日)
 */
function toDate(number, type) {
  var date = new Date(number);
  var Y = date.getFullYear();
  var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
  var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
  var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
  var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
  var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  if (type == '1') {
    return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
  } else if (type == '2') {
    return Y + '-' + M + '-' + D;
  }
}
 
module.exports = {
  toDate: toDate,
  formatMsgTime: formatMsgTime
}

formatMsgTime方法,传时间戳(Number)
60秒内——(刚刚)

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

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

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

其他为正常日期格式显示

 

toDate方法,传时间戳(Number)和(参数1、2)
1——年月日时分秒

2——年月日

 

 

页面需要使用,引入 

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

 

使用

formatMsgTime(Number)
toDate(Number, 1)

 

标签:formatMsgTime,封装,number,dateTime,60,date,var,年月日,时分秒
来源: https://www.cnblogs.com/yx-liu/p/14469164.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有