最近做的一个医院大屏显示的需求,在大屏上需要显示当前实时的时间,在医院的大屏就是医院排队叫号显示的那种大屏,这种大屏不需要登录是通过配置好的连接直接打开的,医院是内网,没有联网。开始是前端直接获取当前实时时间显示。到医院然后实施说,医院是内网,不能获取网络当前时间
后来和后端沟通了一下。刚打开大屏是调接口获取当前时间,前端对时间做处理,累加实现时间实时更新,下面是代码。很简单、
created() {
this.getRealTimeData();
},
methods: {
async getRealTimeData() {
let res = await getRealTime();
if (res) {
this.getTime(new Date(res));
}
},
getTime(date) {
this.currentTime = setInterval(() => {
let addtime = new Date(date.setSeconds(date.getSeconds() + 1));
this.yMd = addtime.getFullYear() + '-' + (addtime.getMonth() + 1).toString().padStart(2, '0') + '-' + addtime.getDate().toString().padStart(2, '0');
this.times = addtime.getHours().toString().padStart(2, '0') + ':' + addtime.getMinutes().toString().padStart(2, '0') + ':' + addtime.getSeconds().toString().padStart(2, '0');
this.newData = this.yMd + ' ' + this.times;
}, 1000);
},
// 首先肯定要有一个传入的形参(date)用来初始化 这个date就是你接口获取的初始时间
// 其二我们肯定需要计时器setInterval 给它每秒执行一次 这样我们的数据才会一直走动
// addtime 定义的一个变量 用来接收自动累加的时间 date.setSeconds()这个方法作用就是设置秒的时间
//yMd 是我在data 定义用来接收年月日的变量 .getFullYear() .getMonth() .getDate()这三个方法都是用来转换日期格式
// times 是我在data 定义用来接收时分秒的变量 .getHours() .getMinutes() .getSeconds()这三个方法都是用来转换日期格式
// 最后 this.newData 需要再data中定义 在页面就可以使用了
}