Работа с датой и временем

vesta-v

Старатель
Регистрация
25 Окт 2007
Сообщения
311
Реакции
14
Добрый день, подскажите, как можно организовать следущее:

Есть сайт, на котором добавляются новости и выводится дата её добавления. Как сделать добавление к начальной дате + 7 дней, чтобы выводилась дата окончания её размещения на странице. Или, так, чтобы рядом с этой датой высвечивался какбы счетчик обратного отчета (от 7 дней) и каждый день отнимался на 1 число и так до 0.

Например:

Дата добавления статьи 10.09.2011, 17.09.2011 статья уйдет в архив.

а когда статья уходит в архив, выводить только дату добавления.

Или так...:

Дата добавления статьи 10.09.2011, через 7 дней статья уйдет в архив.

На следующий день:

Дата добавления статьи 10.09.2011, через 6 дней статья уйдет в архив.

Что проще сделать? Первый авриант конечно предпочтительней.

Вобще буду благодарна за любую помощь.

Добавлено через 17 минут
Возможно как-то так:

$datadob=date("Y-m-d H:i")

А дата ухода в архив:

$datarh=date("Y-") . date("m") . date("-(d+14) H:i");

Если так, то как это можно впихнуть в DLE?
 
в каком виде дата добавления статьи хранится в базе?
 
в каком виде дата добавления статьи хранится в базе?

без понятия. Мне нужно просто к текущей дате прибавлять 7 дней. Это ж можно сделать без базы?
 
Допустим в БД у новости есть дата создания в поле `created` типа DATETIME.
Тогда 1 из многих вариантов:
PHP:
$db->query('SELECT * FROM tablename WHERE .....'); //вытаскиваем новость обычным запросом
$article=$db->fetch(); 
$publictill=strtotime(article['created'])+3600*24*7; //добавлем 7 дней
$publictill_date=date('Формат даты исполюзуемый на сайте',publictill); // вот и + 7дней
считаем оставшееся время: 
$diff = abs($publictill - time()); 
$days = floor($diff / (60*60*24));  //осталось дней
$rest = $diff - $days * (60*60*24); 
$hours = floor($rest / 60*60);       //осталось часов
$rest = $rest - $hours * (60*60); 
$minutes = floor($rest / 60);     //осталось минут
$seconds = $rest - $mins * 60;   // ну и секунд конечно
конструируем нужную строку с сообщением об оставшемся времени
 
PHP:
echo date( 'd.m.Y', strtotime( date('d.m.Y').'+7days' ) );

С математикой дальше разберешься?
 
  • Заблокирован
  • #6
без понятия. Мне нужно просто к текущей дате прибавлять 7 дней. Это ж можно сделать без базы?

Вам нужно перевести дату статьи в формат unixstamp
и добавить к ней 7 * 24 * 60 *60
 
$created_at= // Это ининциализируем датой из базы
$week=7 * 24 * 60 *60;
if(strtotime(date("Y-m-d H:i:s"))-strtotime($created_at)<$week){
//Кажем количество оставшихся дней
}else{
//Переносим в архив
}
 
Назад
Сверху