| 12345678910111213141516171819202122232425262728293031323334353637 |
- import type { Dayjs } from 'dayjs'
- import dayjs from 'dayjs'
- import utc from 'dayjs/plugin/utc'
- import timezone from 'dayjs/plugin/timezone'
-
- dayjs.extend(utc)
- dayjs.extend(timezone)
-
- export const timeOfDayToDayjs = (timeOfDay: number): Dayjs => {
- const hours = Math.floor(timeOfDay / 3600)
- const minutes = (timeOfDay - hours * 3600) / 60
- const res = dayjs().startOf('day').hour(hours).minute(minutes)
- return res
- }
-
- export const convertLocalSecondsToUTCDaySeconds = (secondsInDay: number, localTimezone: string): number => {
- const localDayStart = dayjs().tz(localTimezone).startOf('day')
- const localTargetTime = localDayStart.add(secondsInDay, 'second')
- const utcTargetTime = localTargetTime.utc()
- const utcDayStart = utcTargetTime.startOf('day')
- const secondsFromUTCMidnight = utcTargetTime.diff(utcDayStart, 'second')
- return secondsFromUTCMidnight
- }
-
- export const dayjsToTimeOfDay = (date?: Dayjs): number => {
- if (!date) return 0
- return date.hour() * 3600 + date.minute() * 60
- }
-
- export const convertUTCDaySecondsToLocalSeconds = (utcDaySeconds: number, localTimezone: string): number => {
- const utcDayStart = dayjs().utc().startOf('day')
- const utcTargetTime = utcDayStart.add(utcDaySeconds, 'second')
- const localTargetTime = utcTargetTime.tz(localTimezone)
- const localDayStart = localTargetTime.startOf('day')
- const secondsInLocalDay = localTargetTime.diff(localDayStart, 'second')
- return secondsInLocalDay
- }
|