toISOString() e le sua applicazione nei client JavaScript delle API

toISOString() e le sua applicazione nei client JavaScript delle API

Le date in JavaScript sono oggetti che possiedono dei metodi. Il metodo di cui parleremo in questo articolo si rivela molto utile quando dobbiamo inviare dei dati ad un'API.

Qual'è la rappresentazione predefinita di una data in formato stringa? Per saperlo possiamo eseguire questo codice:

const date = new Date();
console.log(date.toString());
// Sun Sep 28 2025 20:29:08 GMT+0200 (Central European Summer Time)

Il formato restituito dal metodo toString() non è adatto ad essere utilizzato con le API. Una soluzione decisamente migliore è convertire la data in formato ISO usando appunto il metodo toISOString():

console.log(date.toISOString());
// 2025-09-28T18:29:08.780Z

Ora la stringa risulta essere normalizzata, introducendo i separatori di orario e di fuso orario. Tuttavia, se stiamo inviando questa stringa ad un API basata su un database SQL (MySQL, PostgreSQL, MariaDB, ecc.), la data non è compatibile né col tipo DATE né con quello DATETIME a causa della presenza dei già citati separatori.

Dobbiamo quindi operare un'ulteriore normalizzazione. Se ci interessa il formato DATE, possiamo creare questa funzione di utility:

const toDateFormat = value => {
    if(!value.includes('T')) {
         return value;
    }
    return value.split('T')[0];
};

Con questa funzione, se il parametro in input è 2025-09-28T18:29:08.780Z otterremo 2025-09-28, compatibile con il formato richiesto.

Se invece siamo interessati al formato DATETIME, possiamo creare questa funzione di utility:

const toDateTimeFormat = value => {
    if(!value.includes('T') && !value.includes('.')) {
         return value;
    }
    const base = value.split('.');
    return base[0].split('T').join(' ');
};

Con questa funzione, se il parametro in input è 2025-09-28T18:29:08.780Z otterremo 2025-09-28 18:29:08, compatibile con il formato richiesto.

Per quanto riguarda invece un database NoSQL come MongoDB, il formato ottenuto con il metodo toISOString() non rappresenta un problema in quanto è compatibile con il tipo di dati ISODate di Mongo.

Conclusione

A parte i database NoSQL come Mongo per cui questo metodo risulta già compatibile, a livello client occorre sempre formattare correttamente le date in modo che queste sianoa compatibili con il formato richiesto dalle API. toISOString() è un ottimo modo per partire da una base standard.