61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
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();
|
|
};
|