0

我正在制作一个将日期存储为字符串的新闻提要,例如Tuesday 05 June 2012 04:14:44 PM.

我想做两件事。

  1. 按日期对新闻源进行排序(从最新到最旧)
  2. 如果日期是今天的日期,则仅显示时间(也已排序)。
4

3 回答 3

3

我会更改存储以存储一些“ unix 时间戳”。从中您可以打印出您喜欢的任何日期格式。而且,它是一个数字,很容易排序。

于 2012-06-05T07:28:38.353 回答
0

我想这将解决您的问题,但我建议您尽可能修改您的表格设计。

$result = mysql_query("SELECT * FROM newsfeed");

$records = array();
$i = 0;
while ($row = mysql_fetch_array($result))
{
    $records[$i] = array('news_idPK' => $row['news_idPK'],
                     'date' => date("Y-m-d H:i:s", strtotime($row['date'])),
                     'news' => $row['news']
    );
    $i++;
}
usort($records, "cmp");

function cmp($a, $b) {
    $a = strtotime($a['date']);
    $b = strtotime($b['date']);
    return $a - $b;
}

$ctr = count($records)-1;
for($x=$ctr; $x>=0; $x--)
{
    $newsDate = date("l d F Y h:i:s A", strtotime($records[$x]['date']));
    if(date("Y-m-d", strtotime($records[$x]['date'])) == date("Y-m-d"))
    {
        $newsDate = date("h:i:s A",strtotime($records[$x]['date']));
    }
    echo $records[$x]['news_idPK']." - ".$newsDate." - ".$records[$x]['news']." <br/>";
}
于 2012-06-05T09:09:14.847 回答
-2

这种排序方法无效。您可以添加 ID 列并按 ID 排序。每次有人发布帖子时,它都会插入到提要中 - 将插入一个递增的 ID。它与日期排序平行 - 你想要最新的。

这是最推荐和最有效的排序方法。

于 2012-06-05T07:22:08.927 回答