useTime.js 1.07 KB
import { useEffect, useState } from 'react';
/**
 * 自定义hook
 * 登录页时间
 * @returns {object} 返回时间信息,包含time、dayofweek、date
 */
const useTime = () => {
  const [currentDate, setCurrentDate] = useState({}); 
  useEffect(() => {
    let loginTimeInterval = null;
    if (loginTimeInterval) clearInterval(loginTimeInterval), (loginTimeInterval = null);
    loginTimeInterval = setInterval(() => {
      const date = new Date();
      const weekday = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
      const time = `${date.getHours() < 10 ? `0${date.getHours()}` : date.getHours()}:${
        date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes()
      }:${date.getSeconds() < 10 ? `0${date.getSeconds()}` : date.getSeconds()}`;
      setCurrentDate({
        time,
        dayofweek: weekday[date.getDay()],
        date: date.pattern('yyyy/MM/dd'),
      });
    }, 1000);
    return () => {
      loginTimeInterval && clearInterval(loginTimeInterval);
    };
  }, []);
  return currentDate;
};
export default useTime;