关于#vue.js#的问题:表格中的倒计时,如何结束时间endTime减去现在时间(语言-javascript)

表格中的倒计时,如何结束时间endTime减去现在时间,得出还剩几天几时几分钟几秒,超过就得出超时几天几时几分钟几秒


 
<template>
  <a-table :columns="columns" :data-source="dataSource">
    <template #bodyCell="{ column, text }">
      <template v-if="column.dataIndex === 'name'">
        <a>{{ text }}a>
      template>
      <template v-if="column.dataIndex === 'time'">
        <a>{{ text }}a>
      template>
    template>
  a-table>
template>
<script>
import { defineComponent } from 'vue';
const dataSource = [
  {
    key: '1',
    name: '胡彦斌',
    age: 32,
    address: '西湖区湖底公园1号',
    time:'2023-4-1 00:00:00'
  },
  {
    key: '2',
    name: '胡彦祖',
    age: 42,
    address: '西湖区湖底公园1号',
    time:'2023-5-1 00:00:00'
  },
]
 
const columns = [
  {
    title: '姓名',
    dataIndex: 'name',
    key: 'name',
  },
  {
    title: '年龄',
    dataIndex: 'age',
    key: 'age',
  },
  {
    title: '住址',
    dataIndex: 'address',
    key: 'address',
  },
  {
    title:'倒计时',
    dataIndex:'time',
    key:'time'
  }
]
export default defineComponent({
  setup() {
  
    return {
      dataSource,
      columns,
    };
  },
});
script>

看之前的这个问题,改下getCountdownStr为下面即可

    const getCountdownStr = (time) => {
        time = new Date(time.replace(/-/g, '/'));
        let sec = Math.ceil((time.getTime() - currentTime.value.cur) / 1000);
        let prefix = sec >= 0 ? '还剩' :'超时'
        sec = Math.abs(sec);
        //if (sec <= 0) return '0天0时0分钟0秒';

        let day = Math.floor(sec / 24 / 3600);
        sec -= day * 24 * 3600;
        let hour = Math.floor(sec / 3600);
        sec -= hour * 3600;
        let minute = Math.floor(sec / 60);
        sec -= minute * 60;
        return `${prefix}${day}${hour}${minute}${sec}秒`
    }