<script lang="ts" setup name="Clock"> const dataTime = ref(new Date()) const timer = ref() const hours = computed(() => { const date = dataTime.value return date.getHours() < 10 ? `0${date.getHours()}` : date.getHours() }) const minutes = computed(() => { const date = dataTime.value return date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes() }) const seconds = computed(() => { const date = dataTime.value return date.getSeconds() < 10 ? `0${date.getSeconds()}` : date.getSeconds() }) onMounted(() => { timer.value = setInterval(() => { dataTime.value = new Date() }, 1000) }) onBeforeMount(() => { if (timer.value) { clearInterval(timer.value) // 在Vue实例销毁前,清除我们的定时器 } }) </script> <template> <el-card class="box-card"> <div class="clock"> <span class="title">中国,北京时间</span> <span class="hours">{{ hours }}</span>: <span class="minutes">{{ minutes }}</span>: <span class="seconds">{{ seconds }}</span> </div> </el-card> </template> <style rel="stylesheet/scss" lang="scss" scoped> .box-card { .clock { text-align: right; font-size: 30px; font-weight: 600; margin: 10px 25px; .title { font-size: 16px; color: #409eff; font-weight: 300; margin-right: 20px; } } } </style>