【问题标题】:How to display milliseconds in php using mysql query如何使用mysql查询在php中显示毫秒
【发布时间】:2018-04-24 18:54:59
【问题描述】:

如何将我的数据从我的 mysql 数据库显示到我的 php 文件的毫秒数?我的表humidity 有一个名为time 的字段,当前为TimeStamp(3) 类型。问题是表格中显示的毫秒数是“000”,而不是数据库中的实际值。

这是我的 php 代码:

<?php echo date("g:i:s:v a F j, Y ", strtotime($row['setTime'])); ?>

...但它只显示1:40:45.000 am April 25, 2018 而不是01:40:45.231 am April 25,2018

【问题讨论】:

  • 哪个版本的 MySQL?
  • strtotime 返回一个整数,表示秒数。如果您以毫秒级的粒度传递它,那么该信息将会丢失。
  • 在 MySQL 5.6.4 之前,小数秒存储在数据类型 TIMESTAMP(3) 的列中。提供的值可以有小数秒,小数秒被接受,但当值存储在表中时被丢弃。
  • @Uueerdo 我该如何检查?我正在使用 Xampp v3.2.2 和 php 7.2.2 数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407 - $Id:
  • @iainn 以毫秒为单位显示时间戳的最佳方式是什么?

标签: php mysql database time


【解决方案1】:

您可以使用 php 的 DateTime format() 方法。只需使用以毫秒为单位的时间戳实例化该类,并以相同的方式对其进行格式化:

$dateTime = new DateTime($row['setTime']);
$formatted = $dateTime->format("g:i:s:v a F j, Y");

假设 $row['setTime'] == '2018-04-25 01:40:45.231' 这将输出:

1:40:45:231 am April 25, 2018

【讨论】:

  • 我该怎么做?我试过这个` $dateTime = new DateTime($row['setTime']); $formatted = $dateTime->format("g:i:s:v a F j, Y");` 和echo $row[$formatted];
  • 但是有一个错误提示 undefined index:1:40:45:231
  • 现在一切都很好,非常感谢你是我需要几个小时的答案。这对我来说意义重大,非常感谢!祝你有美好的一天!!!
猜你喜欢
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多