Foxnouns.NET/Foxnouns.Frontend/src/lib/components/profile/TimeOffset.svelte

19 lines
594 B
Svelte

<script lang="ts">
import { DateTime, FixedOffsetZone } from "luxon";
import Clock from "svelte-bootstrap-icons/lib/Clock.svelte";
type Props = { offset: number };
let { offset }: Props = $props();
let { currentTime, timezone } = $derived.by(() => {
const zone = FixedOffsetZone.instance(offset / 60);
return {
currentTime: DateTime.now().setZone(zone).toLocaleString(DateTime.TIME_SIMPLE),
timezone: zone.formatOffset(DateTime.now().toUnixInteger(), "narrow"),
};
});
</script>
<Clock aria-hidden />
{currentTime} <span class="text-body-secondary">(UTC{timezone})</span>