模仿微信聊天页的时间格式

代码写的不好,但基本上能实现功能


  /**
   * 把时间戳转为时间,一周内显示周,一天内显示时分
   * @param {时间戳} time
   */
  transTime (time) {
    let toDay = (new Date()).getDate() // 今天是哪号
    let timeDay = (new Date(time)).getDate() // 时间缀转为具体的哪一号

    var toYear = (new Date()).getFullYear() // 获取年
    var timeYear = (new Date(time)).getFullYear() // 获取年

    var toMonth = (new Date()).getMonth() + 1 // 获取月
    var timeMonth = (new Date(time)).getMonth() + 1 // 获取月
    let myMonth = toMonth - timeMonth
    let toHours = (new Date()).getHours() // 获取小时
    let timeHours = (new Date(time)).getHours() // 获取小时
    let Minutes = (new Date()).getMinutes() // 获取分钟
    let timeMinutes = (new Date(time)).getMinutes() // 获取分钟
    if (timeHours < 10) {
      timeHours = '0' + timeHours
    }
    if (Minutes < 10) {
      Minutes = '0' + Minutes
    }
    // console.log(toYear, timeYear)
    if (toYear - timeYear > 0) {
      let tm = timeMonth
      if (tm < 10) {
        tm = ('0' + tm)
      }
      let td = timeDay
      if (td < 10) {
        td = ('0' + td)
      }
      // console.log('一年前')
      // console.log(timeYear + '-' + timeMonth + '-' + timeDay)
      return (timeYear + '-' + tm + '-' + td + ' ' + timeHours + ':' + Minutes)
    }
    // 大于一周
    // console.log(toDay, timeDay)
    if ((myMonth === 0) && ((toYear - timeYear) === 0)) {
      // 本月
      // 一周内的
      if ((toDay - timeDay) === 0) {
        // 日期是今天的
        // 一个小时内3分钟前的
        // 15分内3分前的
        if ((toHours - timeHours) === 0) {
          // 一个小时内
          let xz = ((new Date()) - time) / 60000
          let fz = Math.floor(xz)
          if (fz > 3) {
            return Math.floor(xz) + '分钟前'
          }
        } else {
          // 大于一个小时
          if (timeMinutes < 10) {
            timeMinutes = '0' + timeMinutes
          }
          return (timeHours + ':' + timeMinutes)
        }
      } else if (((toDay - timeDay) >= 1) && (toDay - timeDay <= 7)) {
        // 1周内的
        let weekTime = (new Date(time)).getDay()
        let weekD
        if (weekTime === 0) weekD = '星期日'
        if (weekTime === 1) weekD = '星期一'
        if (weekTime === 2) weekD = '星期二'
        if (weekTime === 3) weekD = '星期三'
        if (weekTime === 4) weekD = '星期四'
        if (weekTime === 5) weekD = '星期五'
        if (weekTime === 6) weekD = '星期六'
        // console.log(weekD)
        return (weekD + ' ' + timeHours + ':' + Minutes)
        // console.log('昨天')
      } else {
        // 大于一周显示日期(如:3月25日
        let tm = timeMonth
        if (tm < 10) {
          tm = ('0' + tm)
        }
        let td = timeDay
        if (td < 10) {
          td = ('0' + td)
        }
        return (timeYear + '-' + tm + '-' + td + ' ' + timeHours + ':' + Minutes)
      }
    }
    if ((myMonth > 0) && ((toYear - timeYear) === 0)) {
      // 大于1个月,同一年的
      let tm = timeMonth
      if (tm < 10) {
        tm = ('0' + tm)
      }
      let td = timeDay
      if (td < 10) {
        td = ('0' + td)
      }
      return (timeYear + '-' + tm + '-' + td + ' ' + timeHours + ':' + Minutes)
    }
  },

转载于:https://www.cnblogs.com/ybixian/p/10841144.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这些功能,你需要使用 Qt 框架和一些 Qt 组件。下面是一些可能有用的组件和建议: 1. 登录界面:使用 Qt 的 QWidget 和 QGridLayout 组件创建一个登录窗口。添加 QLineEdit 和 QPushButton 组件用于输入用户名和密码,以及登录按钮。使用 QValidator 来验证输入的用户名和密码。当用户单击登录按钮时,您可以使用 Qt 的网络模块来发送 POST 请求到微信服务器进行身份验证。 2. 好友列表:使用 Qt 的 QTreeView 组件创建一个树形视图,显示用户的好友列表。您可以使用 QStandardItemModel 来设置数据和视图。为每个好友添加一个图标和名称,并使用 QMenu 组件添加一些上下文菜单选项,例如发送消息和删除好友。 3. 聊天窗口:使用 Qt 的 QTextEdit 和 QListView 组件创建聊天窗口。 QTextEdit 组件用于显示聊天消息,而 QListView 组件用于显示聊天历史记录。您可以使用 QStandardItemModel 来设置数据和视图。为每个聊天消息添加一个时间戳和发送者的图标和名称。 4. 使用信号和槽连接组件:使用 Qt 的信号和槽连接组件之间的事件和操作。例如,当用户单击登录按钮时,将发出一个信号,该信号将触发一个槽函数,该函数将处理身份验证并打开好友列表。当用户选择一个好友时,将发出一个信号,该信号将触发一个槽函数,该函数将打开聊天窗口并显示相应的聊天历史记录。 以上是一些可能有用的建议和组件,但您需要根据您的具体需求和设计进行修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值