js 计算当前时间与指定字符串时间

在开发的过程中可能需要计算当前时间和记录的开始时间的时间差

const getBetweenTimeFormatter = (time) => {
  /**
   * 计算当前时间和指定的字符串时间的时间差并格式化 为 天-时-分
   */
   var diff = '';
   let time1 = new Date(time.replace(/-/g, '/')).getTime()
   var time_diff = new Date().getTime() - time1;
   // 计算相差天数  
   var days = Math.floor(time_diff / (24 * 3600 * 1000));
   // 计算相差小时数  
   var leave1 = time_diff % ( 24 * 3600 * 1000); 
   var hours = Math.floor(leave1 / (3600 * 1000));
   var leave2 =leave1 % (3600 * 1000);
   var minutes = Math.floor(leave2 / (60 * 1000));
  let dayStr = days == 0 ? '' : days + '天'
  let hoursStr = hours == 0 ? '' : hours + '时'
  diff = dayStr + hoursStr + minutes + '分' 
  return diff;

}

其中 

let time1 = new Date(time.replace(/-/g, '/')).getTime()

是为了解决 `ios` 计算时间 为 NaN 的问题,把 - 修改 为 /

然后在页面初始化,查询设备列表,如果有压力的开始监测时间,计算时长,并且更新到视图上

        if(res[0].stressbegin!=="") {
           let timer1 = setInterval(()=>{
              let time = getBetweenTimeFormatter(res[0].stressbegin)
              this.setData({
                time
              })
            },1000)
            this.data.timerList.push(timer1)
          }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 JavaScript 中的 Date 对象来处理日期和时间,然后使用 Vue 中的模板语法将其换成指定的日期字符串。下面是一个简单的示例: ```html <template> <div> <p>当前时间:{{ currentTime }}</p> <p>格式化后的时间:{{ formattedTime }}</p> </div> </template> <script> export default { data() { return { currentTime: new Date(), dateFormat: "yyyy年MM月dd日 HH:mm:ss", }; }, computed: { formattedTime() { return this.formatDate(this.currentTime, this.dateFormat); }, }, methods: { formatDate(date, format) { const o = { "M+": date.getMonth() + 1, // month "d+": date.getDate(), // day "H+": date.getHours(), // hour "m+": date.getMinutes(), // minute "s+": date.getSeconds(), // second "q+": Math.floor((date.getMonth() + 3) / 3), // quarter S: date.getMilliseconds(), // millisecond }; if (/(y+)/.test(format)) format = format.replace( RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length) ); for (const k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace( RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length) ); return format; }, }, }; </script> ``` 在上面的代码中,我们定义了一个 `currentTime` 数据属性来存储当前时间,以及一个 `dateFormat` 数据属性来指定日期格式。然后,我们使用一个计算属性 `formattedTime` 来格式化时间并将其显示在模板中。我们还定义了一个 `formatDate` 方法来将时间对象换为指定格式的日期字符串。 在模板中,我们使用双花括号语法来显示当前时间和格式化后的时间。 你可以根据自己的需求修改日期格式和显示方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值