Javascript 如何使用react JS将5分钟倒计时间隔计时器偏移1分钟

Javascript 如何使用react JS将5分钟倒计时间隔计时器偏移1分钟,javascript,react-hooks,next.js,setinterval,ecmascript-2016,Javascript,React Hooks,Next.js,Setinterval,Ecmascript 2016,我希望在react JS中创建一个5分钟的间隔计时器,偏移1分钟 下面的计时器在1:00=>1:05=>1:10=>1:15=>1:20降落 我需要偏移到1:01=>1:06=>1:11=>1:16=>1:21 计时器需要与洛杉矶时区同步 如果可能,寻找最干净的es7代码 我正在使用NextJS框架 这是我目前掌握的代码 const [timer, setTimer] = useState("") const secondPassed = useCallback(

我希望在react JS中创建一个5分钟的间隔计时器,偏移1分钟
下面的计时器在1:00=>1:05=>1:10=>1:15=>1:20降落
我需要偏移到1:01=>1:06=>1:11=>1:16=>1:21
计时器需要与洛杉矶时区同步
如果可能,寻找最干净的es7代码
我正在使用NextJS框架
这是我目前掌握的代码

  const [timer, setTimer] = useState("")

  const secondPassed = useCallback( () => {
    const cur_date = new Date();
    const minutes = cur_date.getMinutes();
    const seconds = cur_date.getSeconds();
    console.log( (4 - minutes % 5) + ":" + (seconds >= 50 ? "0" : "") + (59 - seconds))
    setTimer( `${(4 - minutes % 5) + ":" + (seconds >= 50 ? "0" : "") + (59 - seconds)}` )
  },[])
  
  useEffect(()=>{
    setInterval(secondPassed, 1000)
  },[])

我将开始日期偏移了1分钟

const [timer, setTimer] = useState("")

  const secondPassed = useCallback( () => {
    const cur_date = new Date( Date.now() - 1000 * 60 );
    const minutes = cur_date.getMinutes();
    const seconds = cur_date.getSeconds();
    console.log( (4 - (minutes % 5)) + ":" + (seconds >= 50 ? "0" : "") + (59 - seconds))
    setTimer( `${(4 - (minutes % 5)) + ":" + (seconds >= 50 ? "0" : "") + (59 - seconds)}` )
  },[])
  
  useEffect(()=>{
    const run = setInterval(secondPassed, 5000)
    return () => clearInterval(run)
  },[])
  

虽然本准则可以回答该问题,但提供关于本准则为什么和/或如何回答该问题的附加上下文可提高其长期价值。这并不能回答我的问题。
const [timer, setTimer] = useState("")

  const secondPassed = useCallback( () => {
    const cur_date = new Date( Date.now() - 1000 * 60 );
    const minutes = cur_date.getMinutes();
    const seconds = cur_date.getSeconds();
    console.log( (4 - (minutes % 5)) + ":" + (seconds >= 50 ? "0" : "") + (59 - seconds))
    setTimer( `${(4 - (minutes % 5)) + ":" + (seconds >= 50 ? "0" : "") + (59 - seconds)}` )
  },[])
  
  useEffect(()=>{
    const run = setInterval(secondPassed, 5000)
    return () => clearInterval(run)
  },[])