import { getJsDateFromExcel } from "excel-date-to-js"; // export const excelDateStuff = (serial: number, time?: any) => { // // add 5 hours or the offset to utc // // get the local timezone // const localoffset = new Date().getTimezoneOffset() / 60; // then divide by 60 to get the true number; // if (!time) { // time = 800; // } // const addHours = serial + localoffset / 24; // //console.log(getJsDateFromExcel(addHours)); // if (typeof serial !== "number" || serial <= 0) { // return "invalid Date"; // } // const date = getJsDateFromExcel(addHours); // base date from Excel serial // if (time != 0) { // // convert the time over to hour and min // const hours = Math.floor(time / 100); // const minutes = time % 100; // date.setHours(hours); // date.setMinutes(minutes); // } // //console.log(date.toLocaleString("en-US"), getJsDateFromExcel(addHours)); // //console.log(serial); // console.log(date.toISOString(), serial, time); // return date.toISOString(); //.toLocaleString("en-US"); // or .toISOString() if preferred // }; export const excelDateStuff = (serial: number, time?: any) => { if (typeof serial !== "number" || serial <= 0) { return "invalid Date"; } // Default time to 8:00 AM if not provided if (!time) { time = 800; } // Get base date from Excel serial (this gives you UTC midnight) const date = getJsDateFromExcel(serial); const localOffset = new Date().getTimezoneOffset() / 60; const hours = Math.floor(time / 100); const minutes = time % 100; // Set the time in UTC date.setUTCHours(hours + localOffset); date.setUTCMinutes(minutes); date.setUTCSeconds(0); date.setUTCMilliseconds(0); //console.log(date.toISOString(), serial, time); return date.toISOString(); };