diff --git a/package.json b/package.json index 6bfbc6b..b3d9406 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "build": "rollup -c", "test": "jest --testPathIgnorePatterns=\"/node_modules/\", \"/test/\"", - "test:timezone": "TZ=Europe/Berlin npm run test && TZ=America/Los_Angeles npm run test", + "test:timezone": "TZ=America/Santiago npm run test && TZ=Europe/Berlin npm run test && TZ=America/Los_Angeles npm run test", "test:smoke": "jest test/smoke.test.js", "release": "npx semantic-release", "release-dry-run": "npx semantic-release-github-pr --debug" @@ -37,11 +37,5 @@ "semantic-release-github-pr": "^6.0.1", "typescript": "^5.0.4" }, - "keywords": [ - "iata", - "boarding pass", - "barcode", - "encode", - "decode" - ] + "keywords": ["iata", "boarding pass", "barcode", "encode", "decode"] } diff --git a/src/utils.ts b/src/utils.ts index 7d24313..37d08ea 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -4,16 +4,14 @@ export const numberToHex = (n: number) => n.toString(16).padStart(2, "0").toUpperCase(); export const dateToDayOfYear = (date: Date, addYearPrefix = false) => { - const start = new Date(Date.UTC(date.getFullYear(), 0, 0)); - const diff = - date.getTime() - - start.getTime() + - (start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000; const oneDay = 1000 * 60 * 60 * 24; - const dayOfYear = Math.floor(diff / oneDay); + const dayOfYear = + (Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) - + Date.UTC(date.getUTCFullYear(), 0, 0)) / + oneDay; let yearPrefix = ""; if (addYearPrefix) { - yearPrefix = date.getFullYear().toString().slice(-1); + yearPrefix = date.getUTCFullYear().toString().slice(-1); } return `${yearPrefix}${dayOfYear.toString()}`; };