PHP会在午夜后使用物品

时间:2017-11-06 20:37:35

标签: php sorting

我有一个活动日历,我正在从数据库中撤回事件。然而,午夜项目在技术上是以编程方式提前,因此它们首先出现在列表中。我如何排序以便午夜及以后的项目会显示在列表的末尾?

usort($events, function($a, $b) {
    //if after midnight (before 8am of next day)
    return strtotime($a['start_time']) >= strtotime('8:00') ? strtotime($a['start_time']) - strtotime($b['start_time']) : 1;
});

我现在拥有它的方式,它们按正确的顺序排序,但午夜或之后的项目正好出现在第一项之后。如果我在没有这个“8am之前的条件”的情况下正常排序它们会首先出现。

1 个答案:

答案 0 :(得分:1)

如果时间是在清晨,请加上一天,以便在晚上之后。

#include "stdafx.h"
#include <vector>
#include <iostream>
#include <algorithm>

enum EMode
{
     a
    ,b
    ,c
};

void doTheThing(const EMode m)
{
    std::cout << "Found mode " << m << std::endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    std::vector<EMode> modeList;

    modeList.push_back(EMode::a);
    modeList.push_back(EMode::c);

    const auto mode = find_if(modeList.cbegin(), modeList.cend(), [](const EMode m)
    {
        return c == m;
    });

    if(modeList.end() != mode)
    {
        doTheThing(mode);
    }
    return 0; 
}