按ISO日期对PHP数组排序

我正在尝试按日期和时间以ISO 8601格式对PHP中的数组进行排序.我仍在尝试掌握PHP,并尝试了许多关于堆栈溢出的解决方案,而我只是无法确定正确的功能.希望这是一个简单的答案,对其他人有帮助.

仅供参考,此阵列是由Citrix GoToMeeting API生成的.我想在列表的第一时间根据startTime对数组进行排序.

这是使用var_export的数组的样子,并显示了两个结果:

array (
 0 => stdClass::__set_state(
  array(
   'createTime' => '2012-07-03T19:36:58.+0000',
   'status' => 'INACTIVE',
   'subject' => 'Client 1',
   'startTime' => '2012-07-10T14:00:00.+0000',
   'conferenceCallInfo' => 'United States: xxxxx Access Code: xxxxx',
   'passwordRequired' => 'false',
   'meetingType' => 'Scheduled',
   'maxParticipants' => 26,
   'endTime' => '2012-07-10T15:00:00.+0000',
   'uniqueMeetingId' => 12345678,
   'meetingid' => 123456789,
  )
 ),
 1 => stdClass::__set_state(
  array(
   'createTime' => '2012-07-02T21:57:48.+0000',
   'status' => 'INACTIVE',
   'subject' => 'Client 2',
   'startTime' => '2012-07-06T19:00:00.+0000',
   'conferenceCallInfo' => 'United States: xxxxx Access Code: xxxxx',
   'passwordRequired' => 'false',
   'meetingType' => 'Scheduled',
   'maxParticipants' => 26,
   'endTime' => '2012-07-06T20:00:00.+0000',
   'uniqueMeetingId' => 12345678,
   'meetingid' => 123456789,
  )
 ),
)

我的目标是使用foreach循环将数组输出到html div中,此代码是完整的并且可以正常工作,但是我的排序关闭了:-)

预先感谢您的任何帮助!

史蒂夫

解决方法:

如果将其包装在回调中并使用usort()docs here,则可以实现可以想到的任何排序技术

在回调中,您可以使用strtotime或类似方法,并进行简单的int比较.

$myDateSort = function($obj1, $obj2) {
  $date1 = strtotime($obj1->startTime);
  $date2 = strtotime($obj2->startTime);
  return $date1 - $date2; // if date1 is earlier, this will be negative
}
usort($myArray, $myDateSort);
上一篇:将YouTube ISO 8601解析为DateTime C#


下一篇:将Java 8 ISO 8601持续时间表达式添加到java.util.Date