|
|
|
| здраствуйте коллеги! подскажите как мне сравнить 2 перемынные с датами, какая больше/меньше.
вообщем мне нужно выводить из скульной базы только тех преподавателей, которые поступили на работу с 20.01.2005 по 12.04.2005 (это пример). то есть нужно сравнивать дату с датой.
конкретно предназначенных для этого функций я не нашел, а может плохо искал.
подскажите плиз! зараннее благодарен!
З.Ы. не переносите раздел, мне нужно сравнить 2 переменные с датами средствами ПХП!!!!!! | |
|
|
|
|
|
|
|
для: krot
(27.02.2006 в 22:05)
| | А в каком виде у Вас хранится дата в базе? | |
|
|
|
|
|
|
|
для: krot
(27.02.2006 в 22:05)
| | А почему именно средствами PHP, ведь в MySQL это гораздо удобнее сделать? | |
|
|
|
|
|
|
|
для: cheops
(28.02.2006 в 00:21)
| | эээээээ........ нуууу..... да же не знаю, что сказать. просто у меня человек должен вводить в форму 2 даты и после нажатия батона, из базы должны выводиться все преподаватели, устроившиеся на работу в промежутке времени - между двумя датами, например с 10.02.2005($data1) по 12.04.2005($data2).
вот.
данные хранятся в базе ввиде строки "10.01.1986"
а как реализовывать ето, средствами пхп или скул мне безразници, но помоему в пхп нет такой функции сравнения дат или есть, но я о её существовании не заняю..... короче помогите люди добрые. гыгы
З.Ы. тока не переносите тему в скул раздел | |
|
|
|
|
|
|
|
для: krot
(28.02.2006 в 01:29)
| | А как это видится - вы извлекаете все записи и потом их фильтруете средствами PHP или сразу извлекаете из базы данных необходимые вам записи из временного интервала? | |
|
|
|
|
|
|
|
для: cheops
(28.02.2006 в 13:00)
| | я никак ещё я не извлекаю. но если можно извлечёные данные отфильтровать, то я согласен. да и 2-й спрособ (извлекать из бызы тех, которые входят в промежуток времени) тоже подойдёт. мне безразници каким способом это сделать, лижбы выводились записи тех преподователей, которые поступили на работу в указанный промежуток времени. | |
|
|
|
|
|
|
|
для: cheops
(28.02.2006 в 00:21)
| | ну чё никто не знает как ето замутить?
cheops, где ты, спасай! | |
|
|
|
|
|
|
|
для: krot
(28.02.2006 в 12:10)
| | с помощью explode разбить на части и пропустив через mktime получить время в секундах. Сравнивать просто как числа. | |
|
|
|
|
|
|
|
для: Loki
(28.02.2006 в 12:40)
| | mktime() из разбитой строки exploed-ом вида "10.01.1986" - формат (d.m.y) сделает мне число в секундах? помоему это не подходит по логике...
приведи пример (код) сравнивания дат. | |
|
|
|
|
|
|
|
для: krot
(28.02.2006 в 13:57)
| |
<?
function new_date($date)
{
$tmp=explode(".", $date);
return mktime(0, 0, 0, $tmp[2], $tmp[1], $tmp[3]);
}
$date1="10.01.1986";
$date2="25.02.1986";
if (new_date($date1)>new_date($date2))
echo "$date1>$date2";
else
echo "$date1<$date2";
?>
|
| |
|
|
|
|
|
|
|
для: Loki
(28.02.2006 в 14:13)
| | помоему етот код не работает, выводит -
Warning: mktime(): Windows does not support negative values for this function in C:\Program Files\PHP Expert Editor\phpA.tmp on line 6
люди а есть ещё варианты? | |
|
|
|
|
|
|
|
для: krot
(28.02.2006 в 23:36)
| | Хм... а откуда у вас там отрицательные значения, что предаётся через $date? | |
|
|
|
|
|
|
|
для: krot
(28.02.2006 в 23:36)
| | Это моя ошибка. индексы массива начинаются с нуля. Должно быть так:
return mktime(0, 0, 0, $tmp[1], $tmp[0], $tmp[2]);
|
| |
|
|
|
|
|
|
|
для: Loki
(28.02.2006 в 14:13)
| | наверное он работает в юникс-подобных системах, а уменя видоус | |
|
|
|
|
|
|
|
для: krot
(28.02.2006 в 23:38)
| | Вот так будет работать.
<?
function new_date($date)
{
$tmp=explode(".", $date);
return mktime(0, 0, 0, $tmp[1], $tmp[0], $tmp[2]);
}
$date1="10.01.1986";
$date2="25.02.1986";
if (new_date($date1)>new_date($date2))
echo "$date1>$date2";
else
echo "$date1<$date2";
?>
|
Массивы... все у них не как у людей. :))) | |
|
|
|
|
|
|
|
для: Drago
(01.03.2006 в 00:18)
| | люди подскадите
вот проверка на пральность ввода даиы
if(ereg("([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})", $data1) && ereg("([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})", $data2))
{
echo("ok");
} else{
echo("не ok");
}
и когда я ввожу в поле вот ету дату 123.10.2006, то выводится ОК
что не так? | |
|
|
|
|
|
|
|
для: Drago
(01.03.2006 в 00:18)
| | ну кто поможет? | |
|
|
|