javascript - JavaScript 日期方法在 FireFox 中不起作用
问题描述
我为一个网站构建了一个倒数计时器,它在其他浏览器上运行良好,但由于某种原因,我构建它的方式似乎不适用于 firefox,我不知道为什么。页面上的数字表示 NaN,而在其他浏览器上,数字实际上是倒计时。我的代码如下,任何帮助将不胜感激。谢谢你。
<template>
<div class="countdown">
<!-- <img class="cover-image" src="@/assets/img/event_cover_image@2x.png" /> -->
<div class="countdown-container">
<h2>{{ `${$t('countdown.labels.countdownToEvent')}:` }}</h2>
<div class="counter">
<div>
<div id="day">0</div>
{{ $t('countdown.labels.days') }}
</div>
<div>
<div id="hour">0</div>
{{ $t('countdown.labels.hours') }}
</div>
<div>
<div id="minute">0</div>
{{ $t('countdown.labels.minutes') }}
</div>
<div>
<div id="second">0</div>
{{ $t('countdown.labels.seconds') }}
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'Countdown',
data() {
return {
countDate: new Date('Oct 20, 2020 00:00:00:00').getTime(),
counter: null,
};
},
mounted() {
this.counter = setInterval(() => {
const now = new Date().getTime();
const gap = this.countDate - now;
const second = 1000;
const minute = second * 60;
const hour = minute * 60;
const day = hour * 24;
let d = Math.floor(gap / day);
let h = Math.floor((gap % day) / hour);
let m = Math.floor((gap % hour) / minute);
let s = Math.floor((gap % minute) / second);
if (d <= 0 && h <= 0 && m <= 0 && s <= 0) {
clearInterval(this.counter);
d = 0;
h = 0;
m = 0;
s = 0;
}
document.querySelector('#day').innerText = d;
document.querySelector('#hour').innerText = h;
document.querySelector('#minute').innerText = m;
document.querySelector('#second').innerText = s;
}, 1000);
},
beforeDestroy() {
clearInterval(this.counter);
},
};
</script>
解决方案
推荐阅读
- javascript - React-native hooks 表单验证
- python - Kivy在python中动态访问scrollview中的gridlayout
- terminal - MacOS终端等待打开的程序
- reactjs - 与 TouchableWithoutFeedback 一起使用时,React Children 仅期望收到一个 React Child
- c# - SelectedItem 不会绑定到属性
- python - 如何在动态参数解析中执行自动类型转换
- xcode - 如何在 Xcode 12.1 中隐藏回车和空格标记?
- python - 加载和绘制多个泡菜文件?
- python - 变量错误TypeError:只能将str(不是“int”)连接到str
- javascript - 使用javascript计算动画问题