格式化时间hh:mm:ss.0000000到hh:mm不工作


Formatting the time hh:mm:ss.0000000 to hh:mm not working

我在PHP中使用MsSQL。我将time存储在数据库表行中,datetime作为数据类型。时间是这样存储的:08:30:00.0000000,我需要时间显示在08:30,我使用

date('h:i', $time_value); // $time_value stores the time value

这将格式化日期并以4:00给出结果。需要任何格式来显示存储在数据库中的正确时间?

PHP date函数不期望Mysql的datetime作为第二个参数,但是你这样做了:

date('h:i', $time_value);
                 ^
                 |
          second parameter

这就是为什么它不起作用的原因。您使用了错误的值,请先将数据库值转换为时间戳,因为日期函数需要时间戳。你可以想象,这是以前做过的,这里只是一个相关的Q& a材料的选择:

    MySQL将datetime转换为unix时间? MySQL将datetime转换为Unix时间戳

或者只是使用像substr这样的字符串函数来获取您正在寻找的字符串:

$time_value = '08:30:00.0000000';
echo substr($time_value, 0, 5); # 08:30

演示:https://eval.in/146148

您已经可以使用SQL语句进行转换/格式化,相关示例如下:

  • 如何以HH:MM格式显示时间?

您也可以使用:

date('h:i', strtotime('08:30:00.0000000'));

在你的例子中:

date('h:i', strtotime($time_value));