gpt4 book ai didi

PHP 按 4 个日期中的最新日期排序 foreach

转载 作者:行者123 更新时间:2023-11-29 01:36:26 25 4
gpt4 key购买 nike

我有带有名称和 4 个状态的条目,这些条目有日期和描述。

表格类似这样:

name, 
date_cancelation,
date_success,
date_meeting,
date_setup,
note_cancelation,
note_success,
note_meeting,
note_setup

在我的 foreach 循环中,我确定了这 4 个日期中的哪一个是最新的,所以我在我的列表中显示如下内容:

1) John Doe - last status at 11.12.2016 - canceled
2) Mary Jane - last status at 02.01.2017 - meeting
3) Peter Meyer - last status at 10.12.2016 - canceled

对于日期,我在 sql 中有 4 列

现在我想知道如何在日期不是唯一列的情况下按最新日期对列表进行排序。

我通过搜索解决方案了解到,我应该首先按日期对 SQL 进行排序,但由于日期在 4 列中,我不知道如何排序:)

谁能给我一个提示?

谢谢!

编辑:

这是我拥有的代码,它成功地为我提供了具有最新状态的人员列表:

$query = "SELECT abc__form_jobstate.id , 
`jobstate_applicant` , `jobstate_jobstate` ,
`applicant__personid` , `applicant_name` , `status_success_date` , `status_cancel_date` , `status_meeting_date` , `status_application_date`,
`success_note` , `cancel_note` , `meeting_note` , `application_note`
FROM `abc__form_jobstate`
LEFT JOIN abc__form_applicant ON ( applicant__personid = abc__form_applicant.id )
WHERE `applicant_jobangebot` =" . $di . „;

$db->setQuery($query);
$output = $db->loadObjectList();

foreach ($output as $outputs) {

// set variables for dates

$vm_date = $outputs->status_success_date;
$ab_date = $outputs->status_cancel_date;
$pa_date = $outputs->status_meeting_date;
$ll_date = $outputs->status_application_date;

// set variables for notes

$vm_note = $outputs->success_note;
$ab_note = $outputs->cancel_note;
$pa_note = $outputs->meeting_note;
$ll_note = $outputs->application_note;

// put the dates into an array
$statusdates = [
„Success“ => $vm_date,
„Cancel“ => $ab_date,
„Work“ => $pa_date,
„Application“ => $ll_date
];

// See what date is the most recent inside the record

$max = max(array_map('strtotime', $statusdates));
$recent_status = date('d.m.Y', $max);
$recent_statustype = array_search(max($statusdates),$statusdates);

if ($recent_statustype== „Success“) {
$statusnote = $vm_note;
};

if ($recent_statustype== „Cancel“) {
$statusnote = $ab_note;
};

if ($recent_statustype== „Work“) {
$statusnote = $pa_note;
};

if ($recent_statustype == „Application“) {
$statusnote = $ll_note;
};


echo '<div class="col-lg-5“><strong>' . $recent_statustype . '</strong> at ' . $recent_status . '<br>' . $statusnote . '</div>';

}
?>

就像上面的列表

  • 1) John Doe - 最后状态为 2016 年 12 月 11 日 - 已取消
  • 2) Mary Jane - 2017 年 1 月 2 日的最后状态 - session
  • 3) Peter Meyer - 最后状态为 2016 年 12 月 10 日 - 已取消

现在我需要按日期对列表本身进行排序(在这种情况下,Mary Jane 将位于顶部)- 但日期来自不同的列。

希望我能更好地解释我的挣扎。谢谢大家!!!

最佳答案

创建名为date 的列并将其类型设置为dateCURRENT_TIMESTAMP 然后将数据添加到此 .通过应用查询 ORDER BY date desc/asc 获取按此列排序的数据。

关于PHP 按 4 个日期中的最新日期排序 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41952855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com