如何使用PHP从mysql数据库中检索和显示时间戳?

时间:2011-03-03 21:09:28

标签: php mysql database timestamp

目前我正在使用这行代码

echo date("F j Y g:i:s", $row[date]);

但它只是给了我January 1 1970 2:33:31

我也希望它看起来很正常,因为如果我根本不做date("F j Y g:i:s",,我得到的只是2011-03-02 23:00:30,这是正确的日期,但以非常异常的方式显示

2 个答案:

答案 0 :(得分:5)

在查询中对UNIX_TIMESTAMP进行Typecast:

SELECT UNIX_TIMESTAMP(YourDateField) FROM YourTable

由于我忽略了对其他答案的回答,请让我详细说明:

有两种常见的日期类型。两者实际上都是数字,表示自给定日期以来的持续时间。

  1. 一个是天数(浮动) 从1900年开始。一个是一天。该 分数是一天中的一小部分。
  2. 其他是自1970年以来的秒数。这可以是int(整秒)或浮点数(包括小数秒)。
  3. 如果您获得了第一个日期,但将其视为第二个格式,那么您将计算几天的秒数。而不是自1900年以来的111年,自1970年以来,你的计数是111秒。这就解释了为什么你得到那个日期。

    因此,请使用UNIX_TIMESTAMP函数,该函数将第一个浮点表示法转换为以秒为单位的时间戳。这是必需的,因为这也是PHP使用的类型。

答案 1 :(得分:3)

您可能需要使用strtotime,日期函数需要第二个参数为unix时间戳

date("F j Y g:i:s", strtotime($row[date]));

如果您需要不同的格式,可以查看此页面:Date formatting

你可能想要这样的东西:

date("Y-m-d H:i:s", strtotime($row[date]));