vue获取当前时间(与演出时间做出状态比较)

简介: vue获取当前时间(与演出时间做出状态比较)

实现功能:

演出预告页面内

如果节目正在当前时间段进行,那么时间字段为红色。

如果节目已结束,那么时间字段为灰色。

如果节目未开始,那么时间字段为默认黑色。

实现思路:

先获取到当前时间

获取到数据内节目的开始与结束时间

用replace()方法去除时间段内的符号(:)

用slice()方法截取时间

vue中:class方法结合if else 改变时间段的颜色(状态)

<template>
  <div>
    <div class="">
      演出时间预告:
    </div>
    <!-- 这里只判断time_data数据中下标为0的时间段,其他时间段未做判断 -->
    <p :class="{cls:underway,clss:finished}">{{time_data[0].start}}-{{time_data[0].end}}</p>
    <p>{{time_data[1].start}}-{{time_data[1].end}}</p>
    <p>{{time_data[2].start}}-{{time_data[2].end}}</p>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        underway: '',
        finished: '',
        getTime: '',
        time_data: [{
            id: 1,
            name: '孔雀开屏',
            start: '12:00:00',
            end: '14:00:00'
          }, {
            id: 2,
            name: '猴子上树',
            start: '08:00:00',
            end: '10:00:00'
          },
          {
            id: 3,
            name: '蚂蚁搬家',
            start: '20:00:00',
            end: '22:00:00'
          }
        ]
      }
    },
    methods: {
      getCurrentTime() {
        //获取当前时间并打印
        var _this = this;
        // let yy = new Date().getFullYear();年获取
        // let mm = new Date().getMonth() + 1;月获取
        // let dd = new Date().getDate();日获取
        let hh = new Date().getHours();
        let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes();
        let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds();
        // _this.getTime = yy + '/' + mm + '/' + dd + ' ' + hh + ':' + mf + ':' + ss;/
        _this.getTime = hh + ':' + mf + ':' + ss;
        console.log(_this.getTime); //打印获取到的时间
        let get_time = _this.getTime.replace(':', ''); //去除 :符号
        console.log(get_time);
        let begin_ = this.time_data[0].start.replace(':', ''); //去除数组time_data中下标为0的开始时间中的:符号
        console.log(begin_);
        let end_ = this.time_data[0].end.replace(':', ''); //去除数组time_data中下标为0的结束时间中的:符号
        console.log(end_);
        let get_time1 = get_time.slice(0, 4); //截取前四位时间数
        console.log(get_time1);
        let begin_1 = begin_.slice(0, 4);
        console.log(begin_1);
        let end_1 = end_.slice(0, 4);
        console.log(end_1);
        // 如果当前时间大于等于开始时间且小于等于结束时间,(代表当前时间是表演时间,)那么这个类为真,就为它添加类名为cls的这个类,否则就不添加
        if (get_time1 >= begin_1 && get_time1 <= end_1) {
          this.underway = true;
        } else {
          this.underway = false;
        };
        // 如果当前时间大于等于开始时间且大于等于结束时间,(代表表演已结束,)那么这个类为真,就为它添加类名为cls的这个类,否则就不添加
        if (get_time1 >= begin_1 && get_time1 >= end_1) {
          this.finished = true;
        } else {
          this.finished = false;
        }
        console.log(this.underway);
      },
    },
    mounted() {
      this.getCurrentTime();
    }
  }
</script>
<style>
  .cls {
    color: green;
  }
  .clss {
    color: gainsboro;
  }
</style>


目录
相关文章
|
20天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
6天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
6天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
6天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
6天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。
|
5天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
|
7天前
|
存储 JavaScript 开发者
Vue 组件间通信的最佳实践
本文总结了 Vue.js 中组件间通信的多种方法,包括 props、事件、Vuex 状态管理等,帮助开发者选择最适合项目需求的通信方式,提高开发效率和代码可维护性。
|
5天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
|
7天前
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
12天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发