Javascript 如何从特定日期开始制作倒计时计时器
在ReactJS中,我需要从“09/19/2020”开始制作一个倒计时计时器,并将其全部显示在我的页面上 这个计时器考虑的是月、日、小时等。 此计时器从某个时间点开始计算月、日、小时等。不是在任何日期之前,而是从某个日期开始。从“2020年9月19日”开始提供 我的代码: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
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,我可以举个例子吗?