Quindi ho un sito con una funzione di commenti in cui il timestamp del commento è memorizzato in un database MySQL. Da quanto ho capito, il timestamp viene convertito in UTC una volta memorizzato, quindi riconvertito al fuso orario predefinito quando recuperato. Nel mio caso, il mio server si trova nel fuso orario Central Daylight Time (CDT).PHP e MySQL: conversione di TIMESTAMP memorizzato nel fuso orario locale dell'utente
Ho un piano per ottenere il fuso orario da ciascun utente tramite il modulo di iscrizione. Volevo solo sapere come convertire il valore TIMESTAMP nel fuso orario dell'utente.
- In primo luogo, dovrei convertire da UTC a fuso orario locale? O CDT al fuso orario locale?
- In secondo luogo, come potrei fare in PHP? Avrei solo fare:
$userTimezone = new DateTimeZone($userSubmittedTimezoneString); $myDateTime = new DateTime($storedTimestamp, $userTimezone);
... o è che non è corretta?
no, i timestamp vengono memorizzati così come sono in mysql, ma senza dati TZ. se si inserisce "3pm, CST" nel db, quindi 3pm, cst è ciò che è memorizzato. Dovresti convertire in UTC prima di inserirlo, in modo da avere una base invariata comune da convertire in altre TZ. –