Skip to content

Instantly share code, notes, and snippets.

@kuboon
Created November 12, 2020 02:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kuboon/bd2e722d352fb7b6aeef1c2aa44f9bdb to your computer and use it in GitHub Desktop.
Save kuboon/bd2e722d352fb7b6aeef1c2aa44f9bdb to your computer and use it in GitHub Desktop.
convert from/to google sheet date serial
import { zonedTimeToUtc, utcToZonedTime } from "date-fns-tz";
const SheetDate = {
origin: Date.UTC(1899, 11, 30, 0, 0, 0, 0),
dayToMs: 24 * 60 * 60 * 1000
};
function serialToDate(d: number, sheetTimeZone: string): Date {
return zonedTimeToUtc(
new Date(d * SheetDate.dayToMs + SheetDate.origin),
sheetTimeZone
);
}
function dateToSerial(date: Date, sheetTimeZone: string) {
const msec = utcToZonedTime(date, sheetTimeZone).getTime() - SheetDate.origin;
return msec / SheetDate.dayToMs;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment