import { ref, onMounted, onUnmounted } from 'vue'; /** * @description 获取本地时间 */ export function useTime() { let timer; // 定时器 const year = ref(0); // 年份 const month = ref(0); // 月份 const week = ref(''); // 星期几 const day = ref(0); // 天数 const hour = ref(0); // 小时 const minute = ref(0); // 分钟 const second = ref(0); // 秒 // 更新时间 const updateTime = () => { const date = new Date(); year.value = date.getFullYear(); month.value = date.getMonth() + 1; week.value = '日一二三四五六'.charAt(date.getDay()); day.value = date.getDate(); hour.value = (date.getHours() + '')?.padStart(2, '0') || new Intl.NumberFormat(undefined, { minimumIntegerDigits: 2 }).format(date.getHours()); minute.value = (date.getMinutes() + '')?.padStart(2, '0') || new Intl.NumberFormat(undefined, { minimumIntegerDigits: 2 }).format(date.getMinutes()); second.value = date.getSeconds(); }; // 原生时间格式化 // new Intl.DateTimeFormat('zh', { // year: 'numeric', // month: '2-digit', // day: '2-digit', // hour: '2-digit', // minute: '2-digit', // second: '2-digit', // hour12: false // }).format(new Date()) updateTime(); onMounted(() => { clearInterval(timer); timer = setInterval(() => updateTime(), 1000); }); onUnmounted(() => { clearInterval(timer); }); return { month, day, hour, minute, second, week }; }