Forum Webscript.Ru
Программирование => PHP => Тема начата: Solid от 18 Апреля 2002, 03:43:24
-
Поставленная такая задача:
Есть дата, например сегоднешняя - 18.04.2002.
Нужно сделать слудющее, если дата, ещё одна, совпадает с предыдущими 7-ю днями, то выводим, например true, впротивном случае - false.
Если кто не пнял, нужно что бы например, если сегодня 3.05.2002, что бы если дата 30.04.2002 выводило true, как это лучше сделать, спрашивается.
Спасибо, объяснил как мог, спать хочу, всётаки 3:00 уже ;)
-
Переводи в таймштамп, вычитай олно из другого и сравнивай с (3600*7).
-
Я бы добавила, что с 86400*7
-
Я бы добавила, что с 86400*7
Логично :-)
-
Эммм .. я же вроде бы просил пример ;) или забыли?
-
$timestamp1=mktime (0, 0, 0, $month1, $day1, $year1);
$timestamp2=mktime (0, 0, 0, $month2, $day2, $year2);
if(($timestamp1-$timestamp2)>86400*7) {
//прошло больше
} else{
//прошло меньше, или 2 было позже чем 1
}
получить месяц, день и год из строки, надеюсь, проблем нет?
з.ы. надеюсь, я не налажал тут..... :-)))
-
Metaller:
Спасибо!
А вот и полностью код, может кому пригодится:
$date[0] = \'11.12.2002\';
$date[1] = \'02.12.2002\';
list($day[0], $month[0], $year[0]) = explode(\'.\', $date[0]);
list($day[1], $month[1], $year[1]) = explode(\'.\', $date[1]);
$timestamp[0] = mktime(0, 0, 1, $month[0], $day[0], $year[0]);
$timestamp[1] = mktime(0, 0, 1, $month[1], $day[1], $year[1]);
if(($timestamp[0]-$timestamp[1])>86400*7) {
echo \'false\';
} else {
echo \'true\';
}
?>
-
Тогда уж, для повышения быстродействия, надо заранее посчитать 86400*7 - и вставить уже готовое число в скрипт, дабы не заставлять бедный пхп считать всякие глупости :-)
-
Metaller:
Пусть считает, хоть думать получше нучился :D
-
какой ужас!!!
быстро смотрим ман:
http://www.php.net/manual/en/function.strtotime.php
-
Dm
пожалуй, работать оно будет побыстрее :-)))) Но зато неинтересно :-)
-
Но зато неинтересно :-)
точно! :) через одно место привычнее же! ;) (без намеков ни на кого)
я сторонник того, чтобы все было все как надо, а не так как не надо.
-
Solid Тогда делаем вот так:
$date[0] = \'11.12.2002\';
$date[1] = \'02.12.2002\';
$timestamp[0] = strtotime ("$date[0]");
$timestamp[1] = strtotime ("$date[1]"),
if(($timestamp[0]-$timestamp[1])>86400*7) {
echo \'false\';
} else {
echo \'true\';
}
?>