@burglekitt/gmt
Version:
Temporal-based date and time utilities with timezone support and polyfill integration
29 lines (28 loc) • 1.01 kB
JavaScript
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;
}