Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 22.07.2010, 10:57   #1
webber9989
dimgunkin
Форумчанин
 
Аватар для webber9989
 
Регистрация: 06.05.2010
Сообщений: 112
Репутация: 6

icq: 684795212
По умолчанию Карта сайта

Пишу кару сайта, точнее написал, в ней выводятся все заметки добавленные на сайт, при чем они отсортированы по дате и времени добавления от меньшего к большему, вот формат:

Заметка Верстка PS+HTML+CSS // добавлена 2010-05-23 18:37

Мне хотелось бы организовать так, что бы вместо "добавлена 2010-05-23 18:37" было: добавлена сегодня, добавлена вчера, добавлена ххх дней назад...

Заранее большое спасибо и с меня ++
__________________
mail: dimgunkin@gmail.com
skype: dimgunkin
icq: 684-795-212
webber9989 вне форума   Ответить с цитированием
Старый 22.07.2010, 11:07   #2
Revival001
Форумчанин
 
Регистрация: 30.09.2008
Сообщений: 483
Репутация: 301
По умолчанию

Сравнивай дату публикования материала с сегодняшней датой.
Если разница между сегодняшней датой и датой публикования материала равна 0, то вывести "сегодня", если 1, то "вчера", если 2 - "позавчера", в ином случае вывести эту разницу - добавлено n дней назад.
Revival001 вне форума   Ответить с цитированием
Старый 22.07.2010, 11:39   #3
webber9989
dimgunkin
Форумчанин
 
Аватар для webber9989
 
Регистрация: 06.05.2010
Сообщений: 112
Репутация: 6

icq: 684795212
По умолчанию

точно, забыл что-то про сравнение =(
большое спс =)
__________________
mail: dimgunkin@gmail.com
skype: dimgunkin
icq: 684-795-212
webber9989 вне форума   Ответить с цитированием
Старый 22.07.2010, 12:16   #4
webber9989
dimgunkin
Форумчанин
 
Аватар для webber9989
 
Регистрация: 06.05.2010
Сообщений: 112
Репутация: 6

icq: 684795212
По умолчанию

что-то я прочитал и не понял, можно хоть какой-нить пример?
__________________
mail: dimgunkin@gmail.com
skype: dimgunkin
icq: 684-795-212
webber9989 вне форума   Ответить с цитированием
Старый 22.07.2010, 22:19   #5
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Адрес: Рига, Латвия
Сообщений: 372
Репутация: 82

skype: w1cked_91
По умолчанию

Короче. При добавления материала в бд указываешь время добавления в c помощью функции time. Далее, при просмотре материала сравниваешь Текущую метку времени с той, из базы данных. Если разница меньше 24*60*60 секунд, то запись была добавлена сегодня. Если больше 24*60*60, но меньше 2*24*60*60, то вчера и так далее
__________________
No name. Just Linel.
Linel вне форума   Ответить с цитированием
Старый 22.07.2010, 22:44   #6
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,295
Репутация: 1064
По умолчанию

А по мне - так корректнее всё-таки привязываться к дням...потому как просто добавление секунд к значениям,определённым при помощи time() - как-то оторвано от реальности будет:
Напр. добавили запись 22-07-2010 в 22-00,получили time() ,прибавили 24*60*60 секунд - и вот получается что 23-07-2010 до 22-00 всё ещё будет показываться,что "запись добавлена сегодня" - хотя фактически - вчера...
Посмотрите описания и примеры использования функции strtotime().
Она тоже использует значения временной метки,но имеет множество удобных конструкций и шаблонов для быстрого вычисления периодов времени.
Andkorol вне форума   Ответить с цитированием
Старый 22.07.2010, 23:09   #7
Revival001
Форумчанин
 
Регистрация: 30.09.2008
Сообщений: 483
Репутация: 301
По умолчанию

Допустим у тебя в БД храниться timestamp, то то ты с помощью date() определяешь день месяц и год. Если месяц и год совпадают, то пусть например сегодняшнее чило будет в $now, а число, когда добавлен материал в БД - $day, пишешь.
PHP код:
...
$timestamp 435345335// Тут ты должен получить timestamp добавленной новости
$day date("j"$timestamp);
$now date("j");
$t time(); //Текущий timestamp
if ((date("m o")) == (date("m o"$timestamp)))
{
if (
$day == $now)
{
echo 
"Новость добавлена сегодня";

else if ((
$now $day) == 1)
{
echo 
"Новость добавлена вчера";

else
{
$n $now $day;
echo 
"Новость добавлена $n дней назад";
} } 
else 
{
$t time();
$n = ($t $timestamp)/(60*60*24);
echo 
"Новость добавлена $n дней назад";
}
... 
Короче как то так, код не проверил, но принцип такой. Если совсем туго будет, пиши, напишу нормально, т.к это не очень сложно.
Не забудь проверить месяц и год, а то, например, 26 апреля и 26 марта будет считаться один днем.

Последний раз редактировалось Revival001; 22.07.2010 в 23:19.
Revival001 вне форума   Ответить с цитированием
Старый 23.07.2010, 10:57   #8
webber9989
dimgunkin
Форумчанин
 
Аватар для webber9989
 
Регистрация: 06.05.2010
Сообщений: 112
Репутация: 6

icq: 684795212
По умолчанию

Вт здесь плз можно по подробнее:

PHP код:
$timestamp 435345335// Тут ты должен получить timestamp добавленной новости
$day date("j"$timestamp); //Что тут значит j ??
$now date("j");  //Аналогично j ??
$t time(); //Текущий timestamp
if ((date("m o")) == (date("m o"$timestamp))) //Что такое "m o" ?? 
можно ещё по подробнее, что мы должны присваивать переменной $timestamp текущую дату и время, или просто дату? Такой же вопрос относительно переменной $t...
__________________
mail: dimgunkin@gmail.com
skype: dimgunkin
icq: 684-795-212
webber9989 вне форума   Ответить с цитированием
Старый 23.07.2010, 11:29   #9
Johnatan
Antimoderаtoris
Профессионал
 
Регистрация: 08.02.2008
Адрес: Испания
Сообщений: 1,251
Репутация: 430
По умолчанию

Почитай сначала...
http://ru.wikipedia.org/wiki/UNIX-%D...B5%D0%BC%D1%8F
http://ru.wikipedia.org/wiki/Timestamp
http://docs.php.net/manual/ru/function.time.php
http://docs.php.net/manual/ru/function.date.php
Johnatan вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сетевая карта Betty Железо 6 05.08.2009 23:31
Сетевая карта mflat Железо 7 23.06.2009 12:42
Карта C++ mutabor Свободное общение 6 15.06.2009 23:36
Требуется специалист для создания сайта со строгой аутентификацией или зашифрованного сайта. artembar Фриланс 1 01.09.2008 16:11
Карта области Dmitriy77 Общие вопросы Delphi 0 23.10.2007 18:46


01:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru