Unix дата вычесть год

Статус
В этой теме нельзя размещать новые ответы.

jcrush

Гуру форума
Регистрация
10 Ноя 2006
Сообщения
688
Реакции
59
Добрый день, мне нужно выводить страницы на текущую дату, но прошлых лет, до чего смог додуматься:
PHP:
$nowd=mktime(date('h')-24,date('n'),date('s'),date('m'),date('d'),date('Y')-1 );
$nowd2=mktime(date('h'),date('n'),date('s'),date('m'),date('d'),date('Y')-1 );
$sql = sed_sql_query("SELECT page_id, page_alias, page_cat, page_title, page_date FROM $db_pages WHERE page_date>$nowd and page_date<$nowd2 AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l");

но
1. даты как то не точно отрабатывают, но примерно....
2. получается только за 2 года, как бы сделать чтобы года эти были за все время?! т.е. 3-5 лет назад.
 
можно попробовать так
"SELECT page_id, page_alias, page_cat, page_title, page_date FROM $db_pages WHERE from_unixtime(page_date,"%m-%d") like '".date("m-d")."' AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l"
 
можно попробовать так
"SELECT page_id, page_alias, page_cat, page_title, page_date FROM $db_pages WHERE from_unixtime(page_date,"%m-%d") like '".date("m-d")."' AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l"

Parse error: syntax error, unexpected '%'
 
Ну ясен пень, кавычки ведь двойные стоят.
PHP:
"SELECT page_id, page_alias, page_cat, page_title, page_date FROM $db_pages WHERE from_unixtime(page_date,'%m-%d') like '".date("m-d")."' AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l"
 
Вот то что надо спасибо, а как теперь текущий год убрать?
Сейчас выдает все года, а нужно только прошлые, но не текущий...
 
А при обрабоке результатов не вариант сделать?
Или надо именно в запросе?
 
мне нужно выводить страницы на текущую дату, но прошлых лет

Получается, только год надо менять?

PHP:
// задаем промежуток времени
$start_year = "2005";
$end_year = "2010";
$now_data = date("m-d");

for($i=$start_year; $i<=$end_year; $i++) {
     $x_data = $i."-".$now_data;
     $sql = sed_sql_query("SELECT page_id, page_alias, page_cat, page_title, page_date FROM $db_pages WHERE FROM_UNIXTIME(page_date, '%Y-%m-%d') = $x_data AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l");
}

Осталось добавить вывод необходимой информации для каждого прохода цикла.
 
Да думал в запросе проще всего сделать...
-1 где-нибудь поставить, пока ничего не получилось (
 
можно так вывести записи за текущую дату, кроме текущего года
PHP:
"SELECT page_id, page_alias, page_cat, page_title, page_date FROM $db_pages WHERE FROM_UNIXTIME(page_date, '%m-%d') like '".date('m-d')."' AND FROM_UNIXTIME(page_date, '%Y') < '".date('Y')."' AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l"
 
Да думал в запросе проще всего сделать...
-1 где-нибудь поставить, пока ничего не получилось (

-1 можно сделать с функцией DATE_SUB(NOW(), INTERVAL 1 YEAR)

PHP:
"SELECT page_id, page_alias, page_cat, page_title, page_date 
FROM $db_pages 
WHERE 

FROM_UNIXTIME(page_date)<DATE_SUB(NOW(), INTERVAL 1 YEAR) 
AND FROM_UNIXTIME(page_date)>DATE_SUB(NOW(), INTERVAL 5 YEAR) 
AND DATE_FORMAT(FROM_UNIXTIME(page_date), '%m-%d')=DATE_FORMAT(NOW(), '%m-%d')

AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $l"
будет 2006-2009г

 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху