【问题标题】:Get submitted date data from db?从数据库获取提交的日期数据?
【发布时间】:2021-02-03 12:38:39
【问题描述】:

努力从 mysql db 中获取正确的提交数据日期!它显示错误的日期!

类似于添加日期:2020 年 10 月,但它显示的是昨天的日期。

查询函数

{
$query = mysqli_query($conn, "SELECT * FROM filmdb ORDER BY id DESC");
    while($fetch = mysqli_fetch_assoc($query))
    {
        date_default_timezone_set("Europe/Tallinn");
        $film_added = $fetch['film_added'];
        $date = strtotime($film_added);
        $filmpostdate = date("F j, Y",$date);
    }
}

显示

 <li><span><strong>Date added:</strong></span>'.$filmpostdate.'</li>

SQL 表

添加了包含film_added列的请求信息

【问题讨论】:

  • 看看你的逻辑。 while 循环的每次迭代都会替换您的变量 $filmpostdate。所以很明显,当你显示它时,它只会包含最新记录的日期。
  • 所以这是正确的? { $query = mysqli_query($conn, "SELECT * FROM filmdb"); while($fetch = mysqli_fetch_assoc($query)) { date_default_timezone_set("Europe/Tallinn"); $film_added = $fetch['film_added']; $date = strtotime($film_added); $film_added = date("F j, Y",$date); } }
  • 那么“日期错误”是什么意思???你想显示什么日期???
  • 我提交的日期

标签: php mysql sql database date


【解决方案1】:

你的 SQL 是

SELECT * FROM filmdb ORDER BY id DESC

然后通过一个循环,设置变量,然后显示它(如您的代码所示),您只会从表中获取最后一条数据。

显示您在表格中的数据(全部 - 用图片或输入),我们可以更好地帮助您。

此外,您无法选择“October”条目 - 您的 sql 只是“By id”。

您需要其他方式来选择(可能有几十种方式,因此很难给您答案,但又不知道您是如何输入数据的(同样,所有数据的列表或图片将帮助我们回答)。

要获得“October”条目,您可以将 sql 更改为更具体的内容(例如您之前查找的特定 id 等.....)

给我们表格的完整列以及输入的数据行(您可以屏蔽任何“个人”内容 - 我们不关心条目,只需要更多信息来帮助!)

编辑:您所有的数据日期都完全相同(这听起来像是您程序的输入部分的问题.....)

MySQL 表中的日期时间与服务器时间有关(正如您尝试在代码中设置的那样),但也与 ENTERED 时间有关。因此,如果您输入的时间为 GMT,那么当您尝试使用“Europe/Tallinn”显示它时,它可能会再次更改.....

时区内容令人困惑 - 我的建议是始终使用 GMT,直到您将其显示给用户。

您可以研究使用时区 - 我将解决您的直接问题(您似乎需要很多指导,我会尽我所能提供帮助,尽管您可能需要问其他问题......)

您问为什么您的请求显示昨天的日期。这是因为时区和存储日期中的某些内容。

要获得显示“十月”的日期,请删除该行

    date_default_timezone_set("Europe/Tallinn");

日期应该显示你想要的。

现在,您可能想要获取正在输入的日期(同样,这是您的输入程序和服务器的设置)- 在日期格式上设置“e”。

    $filmpostdate = date("F j, Y e",$date);

从那里您应该会看到数据库中的信息。

现在,您想查看与您的时区相关的日期(您的问题在原始帖子中是什么......)试试这个......

 $filmpostdate = date("F j, Y",strtotime($date . " Europe/Tallinn);

它可能仍然不是您想要的,但有了这一切,您现在应该能够更好地了解时区并有一些解决问题的方法。

如果您需要更多帮助,您可能需要其他帖子。我相信这可以回答您最初的问题,并为您尝试做的事情提供额外的帮助。

【讨论】:

    【解决方案2】:

    我认为您没有选择默认数据类型的列 film_adding to current timestamp。如果是,则继续将film_added列的数据类型更改为当前时间戳。

    【讨论】:

      猜你喜欢
      • 2012-02-10
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 2014-04-09
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多