Javascript 如何从特定日期开始制作倒计时计时器

Javascript 如何从特定日期开始制作倒计时计时器,javascript,reactjs,nodes,Javascript,Reactjs,Nodes,在ReactJS中,我需要从“09/19/2020”开始制作一个倒计时计时器,并将其全部显示在我的页面上 这个计时器考虑的是月、日、小时等。 此计时器从某个时间点开始计算月、日、小时等。不是在任何日期之前,而是从某个日期开始。从“2020年9月19日”开始提供 我的代码: import React from "react"; const Timer = () => { } export default Timer 您可以将过去的日期时间转换为unix时间,并从un

在ReactJS中,我需要从“09/19/2020”开始制作一个倒计时计时器,并将其全部显示在我的页面上 这个计时器考虑的是月、日、小时等。 此计时器从某个时间点开始计算月、日、小时等。不是在任何日期之前,而是从某个日期开始。从“2020年9月19日”开始提供

我的代码:

import React from "react";

const Timer = () => {
}

export default Timer

您可以将过去的日期时间转换为unix时间,并从unix时间中的当前日期时间中减去该时间,然后将差值转换回所需的任何时间显示。每秒钟执行一次以获取计时器


您还可以使用像
moment.js
这样的库,它有一个
.unix()
函数,可以轻松地进行转换。

尝试使用以下示例:

import React, { useState, useEffect } from "react";

function calcDiffInMinutes(dateA, dateB) {
  return Math.floor(((dateA.getTime() - dateB.getTime()) / 1000) % 60); // TODO CALCULATIONS HERE
}

export default ({ dateFrom }) => {
  const [currentDate, setCurrentDate] = useState(new Date());
  const [minutesDiff, setMinutesDiff] = useState(
    calcDiffInMinutes(currentDate, dateFrom)
  );

  useEffect(() => {
    const timeoutId = setTimeout(() => {
      setCurrentDate(new Date());
    }, 1000);

    return () => clearTimeout(timeoutId);
  }, [currentDate]);

  useEffect(() => {
    setMinutesDiff(calcDiffInMinutes(currentDate, dateFrom));
  }, [currentDate, dateFrom]);

  return (
    <div>
      <div>Date From: {dateFrom.toISOString()}</div>
      <div>CountDown value: {minutesDiff}</div>
    </div>
  );
};
import React,{useState,useffect}来自“React”;
函数calcDiffInMinutes(dateA,dateB){
返回Math.floor(((dateA.getTime()-dateB.getTime())/1000)%60);//此处的TODO计算
}
导出默认值({dateFrom})=>{
const[currentDate,setCurrentDate]=useState(new Date());
常量[minutesDiff,setMinutesDiff]=使用状态(
calcDiffInMinutes(currentDate,dateFrom)
);
useffect(()=>{
const timeoutId=setTimeout(()=>{
setCurrentDate(新日期());
}, 1000);
return()=>clearTimeout(timeoutId);
},[当前日期];
useffect(()=>{
setMinutesDiff(calcDiffInMinutes(currentDate,dateFrom));
},[currentDate,dateFrom]);
返回(
日期来源:{dateFrom.toISOString()}
倒计时值:{minutesDiff}
);
};
将其放在一个单独的组件文件中,称为“
倒计时”
。 然后你可以在你的应用程序中使用它

请参见此处的完整示例:


p.S.
calcDiffInMinutes
应由您计算以分钟为单位的实际差异。您还需要为天/月等创建这样的函数,或者更改为返回具有所有差异的对象的单个函数。

我刚在一周前开始学习JS,我可以举个例子吗?