我需要从 mysql 数据库中获取日期并打印今天和获取日期之间的差异

Posted

技术标签:

【中文标题】我需要从 mysql 数据库中获取日期并打印今天和获取日期之间的差异【英文标题】:I need to take the date from mysql database and print the difference between today and the fetched date 【发布时间】:2018-07-17 20:01:18 【问题描述】:
<?
foreach ($results as $data) 
  $date = $data->created;
  $now = new DateTime();
  echo $date->diff($now)->format(" %y years,%d days, %h hours and %i minuts");
?>

我使用此代码从 mysql 表中获取日期并将其打印到 codeigniter 框架视图文件中。我的mysql日期类型是“时间戳”。所以你能帮我打印今天和从 mysql 表中获取的日期之间的差异吗? error msg-Call to a member function diff() on string -- 并在使用此代码后收到此消息

【问题讨论】:

How to calculate the difference between two dates using php?的可能重复 你也可以在你的mysql查询中这样做 【参考方案1】:

您必须将您的created 值转换为日期时间。数据库中的时间戳值类似于"2018-02-02 05:08:32"DateTime 的构造函数可以转换它。因此,您只需使用 new DateTime() 包装您的值:

$date = new DateTime($data->created);
$now = new DateTime();
echo $date->diff($now)->format(" %y years,%d days, %h hours and %i minuts");

【讨论】:

谢谢先生,我纠正了我的错误。非常感谢【参考方案2】:

您需要先将时间戳转换为 DateTime 对象,然后才能区分:

$date = new DateTime();
$date->setTimestamp($data->created);

【讨论】:

以上是关于我需要从 mysql 数据库中获取日期并打印今天和获取日期之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

js获取日期:昨天今天和明天后天

如何按日期和时间仅选择今天和明天的 jsonarray 数据并放入列表视图适配器

js获取日期:昨天今天和明天后天 [转贴记录]

Moment.js - 明天、今天和昨天

从mysql获取数据并在几周内对它们进行分组,并显示日期

今天和更早的日期之间的SQL