- 安装插件dayjs或者moment.js
2.使用setInterval(useInterval)或者requestAnimationFrame
react项目中useInterval的代码示例:
import React, {useState } from 'react';
import { useInterval } from "ahooks";
import moment from "moment";
const Datetimes = ({currenttime})=>{const [newtime,cnt]=useState(currenttime);useInterval(() => {cnt(moment().add(1, "seconds").format("YYYY-MM-DD HH:mm:ss"))}, 1000);return <span>{newtime}</span>
}export default Datetimes;
vue3中setInterval示例:
import { dayjs } from 'element-plus';
// 创建定时器
let intervalId;
const time = ref(dayjs().format('YYYY-MM-DD HH:mm:ss'));
onMounted(() => {intervalId = setInterval(() => {time.value = dayjs(time.value).add(1, "seconds").format("YYYY-MM-DD HH:mm:ss");}, 1000)
});
onUnmounted(() => {clearInterval(intervalId);
})
react项目中requestAnimationFrame示例:
const [currentTime, setCurrentTime] = useState(dayjs());const updateClock = () => {setCurrentTime(dayjs()); // 更新时间requestAnimationFrame(updateClock); // 请求下一帧动画};useEffect(() => {requestAnimationFrame(updateClock); // 请求第一帧动画// 卸载组件时停止更新return () => cancelAnimationFrame(updateClock);}, []);