我如何$排时?

时间:2014-11-04 03:16:06

标签: php mysql

好的,我想做的是,假设我有一个在线帐户,我正在查看已经发生的所有交易,我想要在asc中的所有日期。时间顺序。 我已经

$query = "SELECT * FROM action ORDER BY time ASC";
$result = mysql_query($query);

if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);

for ($j = 0 ; $j < $rows ; ++$j)
{
    $row = mysql_fetch_row($result);
    //$date = strtotime('jMy - g:ia', $row[1]);

    echo <<<_END
    <table>
    <tr>
        <td width='40%'><b>ACCOUNT</b></td>
        <td width='20%'><b>TIME</b></td>
        <td width='20%'><b>AMOUNT</b></td>
    </tr>
    <tr>
        <td width='40%'>$row[0]</td>
        <td width='20%'>$row[1]</td>
        <td width='20%'>$row[2]</td>
    </tr>
</table>
_END;
};

注释日期命令是我认为我出错的地方。

1 个答案:

答案 0 :(得分:0)

好的,所以你要在数据库中存储纪元时间。

首先,将其更改为TIMESTAMP列,然后将其作为可读时间呈现在您正在使用的任何MySQL(我假设)客户端中。这不是必要的,但它有所帮助。

其次,要将它们转换为人类可读的日期,请使用date命令。

 $date = date('jMy - g:ia', $row[1]);     

http://php.net/manual/en/function.date.php

您的示例中的

strtotime会将人类可读的日期字符串转换为您已有的“纪元时间”格式。 MySQL中还有UNIX_TIMESTAMP,它可以从具有日期的值转换为具有历史意义的值。

另外,简化你的循环:

while ($row = mysql_fetch_row($result)) {