将datetime字段时间戳从mysql转换为php

将datetime字段时间戳从mysql转换为php,php,mysql,Php,Mysql,我读过关于如何做到这一点的书,大多数人都提出了这个解决方案。我只想显示时间格式 $starttime = "1899-12-30 06:52:47"; <?php echo date("h:i:s",strtotime($starttime)); ?> $starttime=“1899-12-30 06:52:47”; 出于某种原因,它返回“16:00:00” 我做错了什么?如评论中所述,您的日期早于unix时代。允许您解决这个问题 $dt = new DateTime("189

我读过关于如何做到这一点的书,大多数人都提出了这个解决方案。我只想显示时间格式

$starttime = "1899-12-30 06:52:47";
<?php echo date("h:i:s",strtotime($starttime)); ?>
$starttime=“1899-12-30 06:52:47”;
出于某种原因,它返回“16:00:00”


我做错了什么?

如评论中所述,您的日期早于unix时代。允许您解决这个问题

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

此代码对我来说工作正常,并显示“06:52:47”。这可能是因为1899年在Unix纪元之前(00:00:00协调世界时,1970年1月1日,星期四)

首先,1899年在Unix纪元之前,这使得代码的输出最多也无法预测。它失败是因为1899年在Unix纪元之前,这意味着strotime()函数是随机结果的乘积。只需停止使用time()、strotime和date()函数,然后开始使用DateTime类。UNIX
time\t
值可以表示的值范围介于1901-12-13和2035-01-18之间。历元为
0
,但允许正值和负值。
$starttime = "1899-12-30 06:52:47";
echo date("h:i:s",strtotime($starttime));