PHP / SQL组内容按年使用时间戳

时间:2016-08-04 08:32:50

标签: php sql json date object

我有一份在不同年份发行的证书列表,我想在不同的容器/ div / group中显示数据

2004年颁发的证书:
标题:德语102
标题:德语101

2005年颁发的证书:
标题:德语201

2006年颁发的证书:
标题:德语301

DB对象看起来像这样

Array (
    [1] => stdClass Object
        (
            [id] => 1
            [title] => German 101
            [issuedate] => 1072915200 //2004

        )

    [2] => stdClass Object
        (
            [id] => 1
            [title] => German 102
            [issuedate] => 1092154787 //2004
        )
    [3] => stdClass Object
        (
            [id] => 3
            [title] => German 201
            [issuedate] => 1104537600 //2005
        )
    [4] => stdClass Object
        (
            [id] => 4
            [title] => German 301
            [issuedate] => 1136073600 //2006
        )

)

编辑:我能想到从2004年到2044年年初的时间戳,但显然这不是最好的方法......

3 个答案:

答案 0 :(得分:0)

您可以使用

echo date('Y', 1299446702);

然后使用它进行排序。

答案 1 :(得分:0)

循环遍历数组,并生成新数组,其中key为year,value为std对象的数组:

$newArray = [];
foreach ($yourArray as $std) {
    $newArray[date('Y', $std->issuedate)][] = $std;
}
ksort($newArray);

demo

答案 2 :(得分:0)

第一个问题:您使用哪个数据库?

因为大多数人都有YEAR功能,所以你每年都会得到分数列。使用ORDER BY日期,您可以在PHP中使用这样的日期:

for($i = 0; $i < count($yourarray); $i++)
{
        $currentyear = $yourarray[$i]['year'];
        if($oldyear == $currentyear)
        {
            echo $yourarray[$i]['title'] . "<br>";
        }
        else
        {
            echo "<h1>" . $currentyear . "<h1>" . $yourarray[$i]['title'] . "<br>";
        }

        $oldyear = $currentyear;
}