php - 在 php 计算中使用 mysql now()

标签 php mysql

我有一个包含 ID、姓名、电子邮件和日期的数据库。日期字段是使用 now() 填充的。

我可以使用 PHP 将这些记录输出到屏幕。那里没有问题。但是,我想要一个额外的列来显示一个人注册的时间。如何从现在开始减去 mysql 中输入为 now() 的日期列。

这是我到目前为止所拥有的,但它对我不起作用:

$date = $row['date'];
$now = new DateTime();
echo $date->diff($now)->format("%d days, %h hours and %i minuts");

所以我最终会得到类似的结果:

id.....姓名......电子邮件......日期注册...... .length reg 1......迈克尔·克拉克......mclarke@gmail.com......11/02/2016......2天5小时2分钟

谢谢,安迪;-)

最佳答案

$row['date'] 是一个字符串,而不是 DateTime 对象,因此您无法在非对象上调用 diff 。解决这个问题,你的代码就很好了

$date=DateTime::createFromFormat("Y-m-d H:i:s", "2015-12-01 12:56:32");
$now = new DateTime();
echo $date->diff($now)->format("%d days, %h hours and %i minutes");

我使用了 Y-m-d H:i:s 因为这是 NOW() 使用的格式,因此您的日期时间必须按此存储。但是,如果您的字段仅为 DATE 类型,而不是 DATETIME,您只需将格式标识符更改为 "Y-m-d"

输出

10 days, 3 hours and 1 minutes

<强> Fiddle

关于php - 在 php 计算中使用 mysql now(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343864/

相关文章:

php - 如何命名异常(PHP)?

javascript - Laravel 5.5 使用模态删除数据

php - 无法将长数据发送到 mysql MEDIUMTEXT 或 MEDIUMBLOB

mysql - 过滤数据库行

mysql - 驱动程序 ODBC 不适用于 MySQL

PHP mysqli_fetch_array 缺少一些字段

php - glob 函数中的 RegEx 模式

php - 在哪里放置 WHERE 子句来限制搜索引擎

php - MySQL where 子句获取下周事件

mysql - if语句执行不同的查询