Sia le funzioni di data/ora di PHP che i tipi di dati di data/ora di MySQL gestiscono timestamp dell'orologio da parete , non durata; cioè 00:00:55
significa cinquantacinque secondi dopo mezzanotte . Questo non è quello che vuoi; non sei riuscito a gestire le durate superiore a 23 ore, 59 minuti, 59 secondi, perché i tipi di dati e le funzioni che stai utilizzando gestiscono l'ora, che non può superare questi valori.
Il tuo problema specifico deriva dalle impostazioni del fuso orario. Il tuo problema più grande è che devi memorizzare semplici valori interi che esprimono secondi o minuti trascorsi; non timestamp. Per formattarlo in una stringa leggibile dall'uomo in PHP puoi usare DateInterval
classe
.