- 安装插件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);
}, []);