update timezone

This commit is contained in:
kittapath 2025-10-22 23:20:48 +07:00
parent 3084c7e9da
commit a2712839d0
2 changed files with 28 additions and 0 deletions

View file

@ -10,10 +10,14 @@ import { AppDataSource } from "./database/data-source";
import { RegisterRoutes } from "./routes";
import { SalaryPeriodController } from "./controllers/SalaryPeriodController";
import logMiddleware from "./middlewares/logs";
import { DateSerializer } from "./interfaces/date-serializer";
async function main() {
await AppDataSource.initialize();
// Setup custom Date serialization for local timezone
DateSerializer.setupDateSerialization();
const app = express();
app.use(

View file

@ -0,0 +1,24 @@
// Custom Date serializer for local timezone
export class DateSerializer {
static toLocalTime(date: Date): string | null {
if (!date) return null;
// Convert UTC date to Thailand timezone (+07:00)
const offset = 7 * 60; // Thailand is UTC+7
const localTime = new Date(date.getTime() + offset * 60 * 1000);
// Format as ISO string but replace Z with +07:00
const isoString = localTime.toISOString();
return isoString.replace("Z", "+07:00");
}
static setupDateSerialization() {
// Override Date.prototype.toJSON to use local time
Date.prototype.toJSON = function () {
const offset = 7 * 60; // Thailand timezone offset in minutes
const localTime = new Date(this.getTime() + offset * 60 * 1000);
const isoString = localTime.toISOString();
return isoString.replace("Z", "+07:00");
};
}
}