Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

Заметка Верстка 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
По умолчанию

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

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

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

Короче. При добавления материала в бд указываешь время добавления в 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,301
По умолчанию

А по мне - так корректнее всё-таки привязываться к дням...потому как просто добавление секунд к значениям,определённым при помощи 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
По умолчанию

Допустим у тебя в БД храниться 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
По умолчанию

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

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
По умолчанию

Почитай сначала...
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
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сетевая карта 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