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>


目录
相关文章
|
2月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
279 2
|
24天前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
250 137
|
5月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
709 0
|
7月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
960 4
|
5月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
6月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
756 77
|
4月前
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
377 1
|
4月前
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
215 0
|
7月前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍
|
5月前
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
449 17