UNPKG

@burglekitt/gmt

Version:

Temporal-based date and time utilities with timezone support and polyfill integration

29 lines (28 loc) 1.01 kB
import { Temporal } from "@js-temporal/polyfill"; import { isValidUnixUnit } from "../validate/isValidUnixUnit.js"; /** * Return the current Unix timestamp in either seconds or milliseconds. * * - Uses Temporal.Now.instant() to get current time. * - Defaults to "milliseconds" if no unit specified. * - Returns 0 on failure. * * @param unit optional unit specifier: "seconds" | "milliseconds" * @returns number (unix timestamp) * * @example getUnixNow() // 1700000000000 * @example getUnixNow("seconds") // 1700000000 */ export function getUnixNow(...unitInput) { const rawUnit = unitInput.length === 0 ? undefined : unitInput[0]; const resolvedUnit = unitInput.length === 0 ? "milliseconds" : isValidUnixUnit(String(rawUnit ?? "")) ? rawUnit : "milliseconds"; const instant = Temporal.Now.instant(); if (resolvedUnit === "seconds") { return Math.floor(instant.epochMilliseconds / 1000); } return instant.epochMilliseconds; }