悦新君 2023-05-18 17:09 采纳率: 65.4%
浏览 25
已结题

uniapp 展示不同时间格式

uniapp开发 需要处理显示不同的时间格式 如下,这个要怎么处理?

img

img

  • 写回答

2条回答 默认 最新

  • 顾与吖 2023-05-18 19:05
    关注

    您好,针对uniapp的日期格式展示需求,可以通过以下代码实现:

    
    // 获取当前时间戳
    var now = new Date().getTime()
    
    // 时间差(单位:毫秒)
    var diff = now - yourDate.getTime()
    
    // 超过两天,按星期几展示
    if (diff >= 172800000) {
      var weekdays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
      return weekdays[yourDate.getDay()]
    }
    
    // 超过一天,显示昨天/今天
    else if (diff >= 86400000) {
      var yesterday = new Date(now - 86400000)
      if (yourDate.getDate() === yesterday.getDate()) {
        return '昨天 ' + format(yourDate, 'HH:mm')
      } else {
        return '今天 ' + format(yourDate, 'HH:mm')
      }
    }
    
    // 不超过一天,按时-分展示
    else {
      return format(yourDate, 'HH:mm')
    }
    

    其中,format 函数是用于格式化具体时间的,具体实现方式可以自行编写。此处给出一个常见的实现方式:

    function format(date, fmt) {
      var o = {
        "M+": date.getMonth() + 1, //月份
        "d+": date.getDate(), //日
        "H+": date.getHours(), //小时
        "m+": date.getMinutes(), //分
        "s+": date.getSeconds(), //秒
        "q+": Math.floor((date.getMonth() + 3) / 3), //季度
        "S": date.getMilliseconds() //毫秒
      };
      if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
      }
      for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
      }
      return fmt;
    }
    

    希望对您有所帮助

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月29日
  • 已采纳回答 5月21日
  • 创建了问题 5月18日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀