|
|
|
| Каким образом можно допустим задать время и выбрать из списка наиболее близкое.
Вообще можно сортировать по времени?
Спасибо. | |
|
|
|
|
автор: Wunderbar (17.03.2008 в 19:55) |
|
|
для: simplyv
(17.03.2008 в 19:52)
| | Время - числа. Числа сортировать можно от меньшего к большему: 0, 1, 2, 3, 4, 5, ...; От большего к меньшему: 5, 4.5, 2, 1. | |
|
|
|
|
|
|
|
для: Wunderbar
(17.03.2008 в 19:55)
| | Ну да можно сортировать целые, десятичные .. а вот время допустим сейчас 13:00 и я хочу, чтобы было выбрано ближайшее время из списка. не знаю с чего начать, от чего оттолнуться. | |
|
|
|
|
|
автор: Wunderbar (18.03.2008 в 01:13) |
|
|
для: simplyv
(17.03.2008 в 21:19)
| |
<?php
function return_diff($t1, $t2)
{
$t1 = explode(':', $t1);
$t2 = explode(':', $t2);
$m1 = $t1[0] * 60 + $t1[1];
$m2 = $t2[0] * 60 + $t2[1];
$diff = abs( $m1 - $m2 );
return ( $diff > 12 * 60 ) ? abs( 24 * 60 - $diff ) : $diff;
}
function cmp($a, $b)
{
global $time;
$diff_a = return_diff($a, $time);
$diff_b = return_diff($b, $time);
if( $diff_a == $diff_b )
{
return 0;
}
return ($diff_a < $diff_b) ? -1 : 1;
}
// Время
$time = '00:15';
// Список
$time_arr = array('23:30', '01:00', '15:00');
usort($time_arr, 'cmp');
print_r($time_arr);
?>
|
| |
|
|
|
|
|
|
|
для: Wunderbar
(18.03.2008 в 01:13)
| | Спасибо всем за участие и очень разнообразную помощь. Есть достаточно пищи для размышления. | |
|
|
|