sparkast/components/time.tsx
alikia2x 844333e623 ref: sparkhome v5, use vite instead of next.js
Progress: component search, time and background could run.
2024-06-24 04:40:31 +08:00

47 lines
1.3 KiB
TypeScript

"use client";
import { useState, useEffect } from "react";
export default function Time(props: {
showSecond: boolean
}) {
const [currentTime, setCurrentTime] = useState(new Date());
useEffect(() => {
const timer = setInterval(() => {
setCurrentTime(new Date());
}, 150);
return () => {
clearInterval(timer);
};
}, []);
const formatTime = () => {
const hours = currentTime.getHours().toString().padStart(2, "0");
const minutes = currentTime.getMinutes().toString().padStart(2, "0");
const seconds = currentTime.getSeconds().toString().padStart(2, "0");
if (props.showSecond) {
return `${hours}:${minutes}:${seconds}`;
} else {
return `${hours}:${minutes}`;
}
};
return (
<div
className="absolute top-20 lg:top-44 short:top-0 translate-x-[-50%]
left-1/2 w-11/12 sm:w-[700px] text:black
dark:text-white text-3xl text-left text-shadow-lg z-10"
>
{formatTime()}{" "}
<span className="text-lg leading-9 relative">
{new Intl.DateTimeFormat(navigator.language, {
dateStyle: "medium"
}).format(currentTime)}
</span>
</div>
);
}