// 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("Data non valida ricevuta come parametro.") } // 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}`) }