Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.27.244] |
|
Сообщ.
#1
,
|
|
|
Есть код, но он не работает. В переменной $seconds - время в секундах одной недели. $count - строк в файле. $file2 - файл базы.
$file2 = file("../catalog/$file"); $count = count($file2); // 604800 - в неделе секунд if($count != 0){ $seconds = "604800"; $clear = 0; for($i=0;$i<$count;$i++){ $ex = explode("|", $file2[$i]); $dt = explode(".", $ex[0]); $date1 = abs(mktime(trim(round(date("H"))), 0, 0, trim(round(date("d"))), trim(round(date("m"))), trim(round(date("Y")))) - date("U")); $date2 = abs(mktime(trim(round(date("H"))), 0, 0, trim(round(date("d"))), trim(round(date("m"))), trim(round(date("Y")))) - mktime(12, 0, 0, trim(round($dt[0])), trim(round($dt[1])), trim(round($dt[2])))); $date = abs(round(($date1 - $date2))); print "$date / ".($ex[2] * $seconds)."<br>"; if($date > ($ex[2] * $seconds)){ //KillLine("../catalog/$file", $i); $clear++; } } print "<tr><td align=center>Проверено: <big><b>$count</b></big> / Очищено: <big><b>$clear</b></big> / Итого: <big><b>".($count - $clear)."</b></big><br><br></td></tr>"; }else{ print "<tr><td align=center>Проверено: <big><b>0</b></big> / Очищено: <big><b>0</b></big> / Итого: <big><b>0</b></big><br><br></td></tr>"; } База данных: 10.08.05|15:30|4||1.0.0|52|Магнитофон| 09.08.05|15:30|4||1.0.0|52|Магнитофон| 08.08.05|15:30|4||1.0.0|52|Магнитофон| 07.08.05|15:30|4||1.0.0|52|Магнитофон| 06.08.05|15:30|4||1.0.0|52|Магнитофон| 05.08.05|15:30|4||1.0.0|52|Магнитофон| 04.08.05|15:30|4||1.0.0|52|Магнитофон| 03.08.05|15:30|4||1.0.0|52|Магнитофон| 02.08.05|15:30|4||1.0.0|52|Магнитофон| 01.08.05|15:30|4||1.0.0|52|Магнитофон| 31.07.05|15:30|4||1.0.0|52|Магнитофон| 30.07.05|15:30|4||1.0.0|52|Магнитофон| 29.07.05|15:30|4||1.0.0|52|Магнитофон| 28.07.05|15:30|4||1.0.0|52|Магнитофон| 29.07.05|15:30|4||1.0.0|52|Магнитофон| 26.07.05|15:30|4||1.0.0|52|Магнитофон| 25.07.05|15:30|4||1.0.0|52|Магнитофон| 24.07.05|15:30|4||1.0.0|52|Магнитофон| 23.07.05|15:30|4||1.0.0|52|Магнитофон| 22.07.05|15:30|4||1.0.0|52|Магнитофон| 21.07.05|15:30|4||1.0.0|52|Магнитофон| 20.07.05|15:30|4||1.0.0|52|Магнитофон| 19.07.05|15:30|4||1.0.0|52|Магнитофон| 18.07.05|15:30|4||1.0.0|52|Магнитофон| 17.07.05|15:30|4||1.0.0|52|Магнитофон| 15.07.05|15:30|4||1.0.0|52|Магнитофон| 14.07.05|15:30|4||1.0.0|52|Магнитофон| 13.07.05|15:30|4||1.0.0|52|Магнитофон| 4 - кол-во недель. может быть 1, 2, 3, 4. Функция KillLine - удаляет строку. Нужно чтобы удалялось. Т.е. вызывая скрипт, должно проверяться, прошло время или нет. Если можете предложить другой вариант отсеивания - буду рад. Спасибо. |
Сообщ.
#2
,
|
|
|
Неверный подход к органиции "ручной базы". А что если таблица будет в пару мегабайт? И каждый раз разбирать на массив а потом собирать обратно? Это далается так:
Надеюсь, проверка даты работает верно? |
Сообщ.
#3
,
|
|
|
За идею спасибо, а вот проверку мне и надо ....
|
Сообщ.
#4
,
|
|
|
<?php $line = '29.07.05|15:30|4||1.0.0|52|Магнитофон|'; $array = explode('|', $line); $date = explode('.', $array[0]); $time = explode(':', $array[1]); $current = time(); $checking = mktime($time[0], $time[1], 0, $date[1], $date[0], $date[2]); echo ($current < $checking) ? 'В будущем' : 'В прошлом'; ?> Ничего другого на ум не приходит. |
Сообщ.
#5
,
|
|
|
Система другая. Посидев пару часов додумался примерно до следующего:
$week = 604800; $line = "29.07.04|sdf|sdf|ad|"; $ex = explode("|", $line); $dt = explode(".", $ex[0]); $date = mktime() - mktime(0, 0, 0, $dt[0], $dt[1], $dt[2]); if($date < ($week * 4)){ прошло } Вроде все удаляет, но 3 первые переменные (хоть они и меньше текущей даты) становятся отрицательными в переменной $date, и следовательно $ex[0] больше чем текущая дата. Вопрос на засыпку: Что за ГЛЮКИ!!!!!!?!?!?!?!??! |
Сообщ.
#6
,
|
|
|
http://detail.phpclub.ru/article/date_stuff
Добавлено PS: и ещё. Не в каждой неделе 604800 секунд. |
Сообщ.
#7
,
|
|
|
Цитата Не принципиально важно, т.к. дата берется примерная.PS: и ещё. Не в каждой неделе 604800 секунд. За ссылку спасибо, посмотрю. |