Ciao, sto tentando di aggiornare una data inserita in una database, ma il PHP non mi crea il giusto orario.
In pratica, devo aggiornare in una sistema di gestione delle sessioni, la data di scadenza, che è di 2 ore oltre la data di creazione della sessione.
Niente di strano, ma la funzione che sto utilizzando mi da sempre un orario errato, c'è qualcosa che non capisco o forse è proprio il PHP, noto per problemi con le date, ma in questo caso mi pare strano.
Ecco lo script che sto utilizzando:
Codice PHP:
private static function dammiOra(string $orario = '') {
if ($orario == '')
$data = new DateTime(date('Y-m-d H:m:s'), new DateTimeZone("Europe/Rome"));
else
$data = new DateTime($orario, new DateTimeZone("Europe/Rome"));
$data->add(new DateInterval('PT2H'));
return $data->format('Y-m-d H:m:s');
}
Dove $orario passa una data da aggiungere, se questa non è settata, prende la data del momento.
Poi crea la differenza: PT2H, ovvero utilizzando il sistema Daylight Saving Time, ma lo stesso risultato lo ottengo anche inserendo "+2 hours".
Inpratica come data_inizio mi scrive: 2021-11-10 09:35:34 e poi come data di scadenza mi scrive 2021-11-10 11:11:34 e qui si vede che non è di due ore avanti la prima.
C'è qualcosa che sbaglio probabilmente, ma non so come risolvere.