Преобразование временной метки времени datetime из mysql в php

Я прочитал о том, как это сделать, и большинство из них придумали это решение. Я просто хочу отобразить формат времени.

$starttime = "1899-12-30 06:52:47"; <?php echo date("h:i:s",strtotime($starttime)); ?> 

По какой-то причине это возвращает «16:00:00»,

Что я делаю не так?

Как уже упоминалось в комментариях, ваша дата до эпохи unix. DateTime() позволяет вам обойти это.

 $dt = new DateTime("1899-12-30 06:52:47"); echo $dt->format("h:i:s"); 
 $starttime = "1899-12-30 06:52:47"; echo date("h:i:s",strtotime($starttime)); 

Этот код работает нормально для меня и отображает «06:52:47». Возможно, это связано с тем, что 1899 год до эпохи Unix (00:00:00 координированного всеобщего времени (UTC), четверг, 1 января 1970 года)