【问题标题】:Difference Between Database Date and Today's Date数据库日期和今天日期之间的差异
【发布时间】:2016-01-22 15:26:04
【问题描述】:

我正在开发一个网站,让用户可以查看他们的设备并知道维修开始前经过了多少天。

但我无法获取有关日期的 DATABASE 信息。 我注册了一个 DATE 列,并使用 CURRENT_TIMESTAMP 将其设置为 TIMESTAMP,这样它就可以自动归因于加入系统的日期。

我正在使用脚本来获取今天的日期,并将其放在一个表格中,以便向用户显示:

<script>
var days = new Date(); 
document.getElementById("days").innerHTML = days.toISOString().substr(0, 10); 
</script>

然后我调用了一个函数来获取所有设备信息(客户名称、日期、类型等...):

include_once('DataAccess.php');
$da = new DataAccess();
$res = $da->getEquipmentInfo();
while($row = mysqli_fetch_object($res)){
echo " <td id='days'></td> "; }

我如何计算数据库列 DATE 和今天的日期之间的差异以知道过去了多少天?

谢谢。

【问题讨论】:

  • “我正在使用脚本获取今天的日期并将其放在表格中以便向用户显示:”您是什么意思:“什么样的表格? mysql表还是html表?
  • 脚本&lt;script&gt; var days = new Date(); document.getElementById("days").innerHTML = days.toISOString().substr(0, 10); &lt;/script&gt;用于获取今天的日期。
  • 我问你把它放在桌子上是什么意思。我知道它的作用
  • 我想让用户看到他们的设备,比如设备的状态、注册的日期等等……我只是把它放在桌子上,因为它看起来很漂亮。我可以完美地将它放在

    或其他东西中。

  • 好吧,你的意思是 HTML 表格,这就是我需要知道的全部内容

标签: javascript java php mysql date


【解决方案1】:

将两个日期转换为 unix,然后找出它们之间的差异,具体取决于您是否需要天、周、分钟等。你将不得不转换。我没有足够的关于你的代码和你所有的 javascript 的信息来为你做这件事,但这里是一个 php 示例。

<?php
   $now = time(); 
   $db_unix = strtotime($res->theMysqlTimestamp);
   $datediff = $now - $db_unix;
   echo floor($datediff/(60*60*24));
?>

这需要现在的日期,你的时间戳从 mysql 获取 unix 时间戳,减去它们,然后计算它们之间的天数差异。

【讨论】:

  • 好的,谢谢。但我是用 PHP 编程的新人。那 $db_unix 和 MysqlTimestamp 是什么?我必须在这些代码行上添加什么?我可以为您提供有关我的代码的所有信息。
  • 好吧,我只是在做假设,因为我不知道您的数据库表结构。但是$db_unix 变量保存的是从您的数据库表中转换后的时间戳。它被转换为一个unix时间戳。所以theMysqlTimestamp 应该只是您数据库中的时间戳。这有意义吗?
  • 非常感谢!你解决了我的问题。我真的很感激!
  • 欢迎您!如果您不介意,请您接受我的回答作为正确的答案。
  • 还有一个问题。我希望当管理员更改设备状态时,那些日子返回 0 并重新开始计数。我怎么做?我想当他按下一个按钮时它会返回 0,比如onclick='return $now = 0'?
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 2014-07-28
相关资源
最近更新 更多