简报:
嗨,我创建了一个钩子 useDate()
来显示当前时间和日期,如下所示:
interface ReturnDate {
time: string;
date: string;
wish: string;
}
export const useDate = (): ReturnDate => {
const locale = 'en';
const today = new Date();
const day = today.toLocaleDateString(locale, { weekday: 'long' });
const date = `${day}, ${today.getDate()} ${today.toLocaleDateString(locale, { month: 'long' })}\n\n`;
const hour = today.getHours();
const wish = `Good ${(hour < 12 && 'Morning') || (hour < 17 && 'Afternoon') || 'Evening'}, `;
const time = today.toLocaleTimeString(locale, { hour: 'numeric', hour12: true, minute: 'numeric' });
return {
date,
time,
wish,
};
};
我在下面的 组件 中使用它,如下所示:
const ProfileGreetings: FC = () => {
const { firstName } = useUserDetails();
const { date, time, wish } = useDate();
return (
<div className="greetings-container">
<h1>
{wish}
<PrimaryText text={`${firstName || ''}!`} />
</h1>
<div>
<h3>
{date}
<br />
{time}
</h3>
</div>
</div>
);
};
应用程序中的日期/时间格式:
8 月 2 日星期日
晚上 11:54
问题陈述:
目前发生的事情是在我 刷新 页面之前日期和时间不会更新。有没有什么办法可以 实时 更新以下所有内容?
我想 在每 1 分钟后使用一个时间间隔 来计算更新的时间和日期,但我真的不知道这是否是个好主意。我也不知道如何开始以及如何 清除 间隔?
谢谢! :)
原文由 Vinay Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您可以在自定义挂钩中使用挂钩,因此您可以创建一个间隔来每分钟更新一次,如下所示: