[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка даты и вывод
cyberside
Необходимо написать функцию проверки даты как в комментариях в контакте.
Может где лежит скрипт? Я как понял там не очень легкая логика его работы, а опыта с такими делами я не имею пока.
Буду рад поучиться, если дадите ссылкочку. Посоветуйте кто что...

UPD 1:
- Проверка сколько секунд назад, написан комментарий, если прошло не более 1 минуты.
- Проверка сколько минут назад, написан, если прошло не более 1 часа.
- Сколько часов назад если прошло не более 6.
- Сколько дней назад если прошло не более 1 недели.
- Какого числа и месяца если не более года (или наступил новый год).
- Дата если следующий год.



Спустя 7 минут, 25 секунд (19.04.2012 - 20:26) rooor написал(а):
а как в контакте? я просто не в курсе... по идее с датой можно делать всё что угодно, это же цифры)

Спустя 4 минуты, 26 секунд (19.04.2012 - 20:30) cyberside написал(а):
UPD 1

Спустя 3 минуты, 3 секунды (19.04.2012 - 20:33) ADiel написал(а):
читай про функцию date()

Спустя 12 минут, 9 секунд (19.04.2012 - 20:45) rooor написал(а):
cyberside
я начну, а ты продолжи)
формат даты я у тебя не знаю, поэтому как есть)
$date = strtotime('2012-04-19 20:00:00'); // время сообщения
if($date + 60 > time())
{
echo "Прошло меньше минуты";
}

Спустя 6 минут, 43 секунды (19.04.2012 - 20:52) cyberside написал(а):
rooor, ну я так начал...

$post_tins = mktime($post['hours'],$post['minutes'],$post['seconds'],$post['month'],$post['day'],$post['year']);
$now_tins = mktime($now['hours'],$now['minutes'],$now['seconds'],$now['month'],$now['day'],$now['year']);
$diff = $now_tins - $post_tins;

По твоему примеру переделал до:

$diff = time() - strtotime($comment['posted']);

:D

Спустя 55 минут, 14 секунд (19.04.2012 - 21:47) cyberside написал(а):

# НАЧАЛО # /* Опредиление даты поста */
$post['y'] = substr($comment['posted'],0,4);
$post['m'] = substr($comment['posted'],5,2);
$post['m'] = $post['m'] + 0;
$post['d'] = substr($comment['posted'],8,2);
$post['d'] = $post['d'] + 0;
$post['h'] = substr($comment['posted'],11,2);
$post['mi'] = substr($comment['posted'],14,2);
$post['s'] = substr($comment['posted'],17,2);

$diff = time() - strtotime($comment['posted']);
if($diff>60){
if($diff>3600){
if($diff>21600){
if($diff>604800){
if($diff>31104000){
$posted = $post['d'].' '.$month[$General->Language()][$post['m']].' '.$post['y'].' '.$lang[$General->Language()]['year'];
}else{# Меньше года
$posted = $post['d'].' '.$month[$General->Language()][$post['m']].' '.$lang[$General->Language()]['in'].' '.$post['h'].':'.$post['mi'];
}
}
else{# Меньше недели
$days = round($diff / 86400);
if($days==0){
$hours = floor($diff / 3600);
if($hours>6)
$posted = $lang[$General->Language()]['today'] .' '. $lang[$General->Language()]['in'] .' '. $post['h'].':'.$post['mi'];
else
$posted = $hours .' '. $General->Engine->RightWordEcho($hours,$lang[$General->Language()]['oh'],$lang[$General->Language()]['th'],$lang[$General->Language()]['fh']) .' '.$lang[$General->Language()]['back'];
}elseif($days==1){
$posted = $lang[$General->Language()]['yesterday'] .' '. $lang[$General->Language()]['in'] .' '. $post['h'].':'.$post['mi'];
}else{
$posted = $days .' '. $General->Engine->RightWordEcho($days,$lang[$General->Language()]['od'],$lang[$General->Language()]['td'],$lang[$General->Language()]['fd']) .' '.$lang[$General->Language()]['back'] .' '. $lang[$General->Language()]['in'] .' '. $post['h'].':'.$post['mi'];
}
}
}
else{# Меньше 6 часов
$hours = floor($diff / 3600);
$posted = $hours .' '. $General->Engine->RightWordEcho($hours,$lang[$General->Language()]['oh'],$lang[$General->Language()]['th'],$lang[$General->Language()]['fh']) .' '.$lang[$General->Language()]['back'];
}
}
else{# Меньше часа
$minutes = floor($diff / 60);
$posted = $minutes .' '. $General->Engine->RightWordEcho($minutes,$lang[$General->Language()]['om'],$lang[$General->Language()]['tm'],$lang[$General->Language()]['fm']) .' '.$lang[$General->Language()]['back'];
}
}
else{# Меньше минуты
$seconds = $diff;
$posted = $seconds .' '. $General->Engine->RightWordEcho($seconds,$lang[$General->Language()]['os'],$lang[$General->Language()]['ts'],$lang[$General->Language()]['fs']) .' '.$lang[$General->Language()]['back'];
}
# КОНЕЦ # /* Опредиление даты поста */


Если публикация была сегодня до 11 (я так думаю что чем больше сейчас времени то ием дальше планка) то выводит что было написано вчера в 5:38 например...

Спустя 9 часов, 43 минуты, 17 секунд (20.04.2012 - 07:31) cyberside написал(а):
UP

Спустя 9 часов, 10 минут, 55 секунд (20.04.2012 - 16:42) cyberside написал(а):
UP
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.