使用moment.js 计算两个时间的差值步骤:

第一步:使用npm导入moment的模块包

npm install moment --save

第二步:在main.js中配置moment.js的依赖

import moment from 'moment'; //导入模块
moment.locale('zh-cn'); //设置语言 或 moment.lang('zh-cn'); 
Vue.prototype.$moment = moment;//赋值使用

第三步:使用

this.$moment('2019/06/17 14:00:00').startOf('hour').fromNow(); //1小时前
this.$moment().format('YYYY年MM月DD日 HH时mm分ss秒');  //2019年08月01日 19时50分20秒
this.$moment(new Date()).format('YYYY年MM月DD日 HH时mm分ss秒');  //2019年08月01日 19时50分20秒

//计算两个日期的天数
let days = this.$moment('2019/06/17 14:00:00').diff(this.$moment('2019/06/20 14:00:00'), 'days'); 

//比较两个日期的大小
let flag = this.$moment('2019/06/17 14:00:00').isBefore('2019/06/17 14:00:00'); 

实例的使用:

<!-- 时间差值的计算 -->
<template>
  <div class="parent">
    <h1>标题</h1>
    <div v-for="item in arr" :key="item">{{item}}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      date1: ["15:12:43", "16:15:35", "18:35:56"], // 时间数组,时分秒
      date2: ["16:12:43", "18:19:34", "19:35:50"], // 时间数组,时分秒
      arr: [], // 时间差计算结果的存放数组
    };
  },
  methods: {
    times() {
      /*  let days = this.$moment(endTime,指定运算的时间("hh:mm:ss")).diff(  //
        this.$moment(startTime,指定运算的时间),
        "seconds" 指定运算的结果是秒
      ); */
      const { date1, date2, arr } = this;
      for (let i = 0; i < date1.length; i++) {
        //计算两个日期相差都少小时分钟秒
        let days = this.$moment(date2[i], "hh:mm:ss").diff(
          this.$moment(date1[i], "hh:mm:ss"),
          "seconds"
        );
        arr.push(this.showTime(Math.abs(days)));
      }
    },
    // 时间日期转换,将秒数转换成02:20:22形式
    showTime(val) {
      if (val < 60) {
        return val + "秒";
      } else {
        var min_total = Math.floor(val / 60); // 分钟
        var sec =
          Math.floor(val % 60) > 9
            ? Math.floor(val % 60)
            : "0" + Math.floor(val % 60); // 余秒
        if (min_total < 60) {
          return "00:" + min_total + ":" + sec;
        } else {
          var hour_total =
            Math.floor(min_total / 60) > 9
              ? Math.floor(min_total / 60)
              : "0" + Math.floor(min_total / 60); // 小时数
          var min =
            Math.floor(min_total % 60) > 9
              ? Math.floor(min_total % 60)
              : "0" + Math.floor(min_total % 60); // 余分钟
          return hour_total + ":" + min + ":" + sec;
        }
      }
    },
  },
  created() {
    this.times(); // 页面加载时调用
  },
};
</script>
<style scoped>
h1 {
  color: rgb(16, 123, 218);
}
</style>

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐