1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2024-11-22 04:54:18 +00:00

Create convertToLocalISODate function

This commit is contained in:
Stefano Pigozzi 2021-05-07 04:47:48 +02:00
parent f24799f473
commit 3bdbcb2951
Signed by untrusted user who does not match committer: steffo
GPG key ID: 6965406171929D01

View file

@ -0,0 +1,30 @@
// Wow, JS, davvero?
// Davvero tutte le date.toISOString() sono considerate UTC?
// Wow.
/**
* Convert a {@link Date} object to a timezone aware ISO String, using the user's local timezone.
*
* @param date
* @returns {string}
*/
export default function convertToLocalISODate(date) {
if(date.toString() === "Invalid Date") {
throw new Error("Received an Invalid Date as parameter.")
}
// Create a timezone naive ISO string
const naive = date.toISOString()
// Find the local timezone
const tz = - new Date().getTimezoneOffset()
// Convert the timezone to hours
const tzHours = Math.abs(Math.floor(tz / 60)).toString().padStart(2, "0")
// Find the minutes
const tzMinutes = (tz % 60).toString().padStart(2, "0")
// Replace the naive part with the aware part
return naive.replace("Z", `${tz < 0 ? "-" : "+"}${tzHours}${tzMinutes}`)
}