Shawn McKenzie wrote: > Shawn McKenzie wrote: >> tedd wrote: >>> Hi gang: >>> >>> Anyone have/know a routine that will sort an array of times? >>> >>> For example, a function that would take an array like this: >>> >>> time[0] ~ '1:30pm' >>> time[1] ~ '7:30am' >>> time[2] ~ '12:30pm' >>> >>> and order it to: >>> >>> time[0] ~ '7:30am' >>> time[1] ~ '12:30pm' >>> time[2] ~ '1:30pm' >>> >>> >>> Cheers, >>> >>> tedd >>> >>> >> Not tested: >> >> function time_sort($a, $b) >> { >> if (strtotime($a) == strtotime($b)) { >> return 0; >> } >> return (strtotime($a) < strtotime($b) ? -1 : 1; >> } >> >> usort($time, "time_sort"); >> > Well, I just thought, since the strtotime() uses the current timestamp > to calculate the new timestamp, if you only give it a time then the > returned timestamp is today's date with the new time you passed. If you > had a large array and the callback started at 23:59:59 then you could > end up with some times from the date it started and some from the next > day, which of course would not be sorted correctly with respect to times > only. So, this might be better (not tested): > > > function time_sort($a, $b) > { > static $now = time(); > > if (strtotime($a, $now) == strtotime($b, $now)) { > return 0; > } > return (strtotime($a, $now) < strtotime($b, $now) ? -1 : 1; > } > > Your best bet above. -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php