Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сколько прошло времени

Сообщения:  [1-10]   [11-16] 

 
 автор: Jaroslav   (03.04.2013 в 16:33)   письмо автору
 
   для: MHz   (02.04.2013 в 16:15)
 

Спасибо большое, буду смотреть.

  Ответить  
 
 автор: MHz   (02.04.2013 в 16:15)   письмо автору
 
   для: MihailGT   (02.04.2013 в 15:20)
 

<?php

$Interval 
date_diff (date_create ('25.03.2013 11:01'), date_create (), TRUE); 
echo (
$Interval->format('%d дней, %h часов, %i минут назад'));

/* 8 дней, 5 часов, 12 минут назад */


Так сказать без велосипедов)

А вообще я не понял что нужно автору разность дат посчитать или вообще в целом организовать отслеживание времени посещений)

  Ответить  
 
 автор: confirm   (02.04.2013 в 15:52)   письмо автору
 
   для: MihailGT   (02.04.2013 в 15:36)
 

А вы как думаете, что удобнее сравнивать - временную метку в секундах, из которой можно получить все остальное, или же заниматься вот этим:
mktime(date("H"),date("i"),date("s"),date("n"),date("j"),date("Y"));
а потом далее еще не понятно чем и зачем?
Если сравнение производить РНР функциями, то требуется только одно выражение:
<?
echo time() - $qyery['time'] <= $online 'Онлайн' 'Последнее посещение ' date('format'$qyery['time']);
где $qyery['time'] время последнего посещения в формате unixtimestamp из базы, а $online, это время в секундах которое считается как время нахождения в пользователя в онлайн режиме.
Такой же ответ можно вернуть уже непосредственно запросом к базе.

  Ответить  
 
 автор: Lotanaen   (02.04.2013 в 15:51)   письмо автору
 
   для: MihailGT   (02.04.2013 в 15:20)
 

ну это:

mktime(date("H"),date("i"),date("s"),date("n"),date("j"),date("Y")); 

аналогично
этому

time()

  Ответить  
 
 автор: MihailGT   (02.04.2013 в 15:36)   письмо автору
 
   для: confirm   (02.04.2013 в 15:29)
 

А какой в php формат удобный для сравнения?

P.s. арифметика в три строчки. Да и я нигде не утверждаю, что мой код претендует на самый рациональный, просто как вариант.

  Ответить  
 
 автор: confirm   (02.04.2013 в 15:29)   письмо автору
 
   для: MihailGT   (02.04.2013 в 15:20)
 

Да... Время последнего посещения (а это будет время последнего запроса страниц) храним в базе. Из базы можно вернуть время уже в формате удобном для сравнения, даже еще больше, из не ее можно вернуть уже готовый результат "если А, то онлайн, если В, то разницу времени".

Вы такую арифметику предлагаете, что просто кровь стынет )

  Ответить  
 
 автор: MihailGT   (02.04.2013 в 15:20)   письмо автору
 
   для: Jaroslav   (31.03.2013 в 15:36)
 

Ну можно посчитать кол-во прошедших секунд.
В базу или в файл при выходе записываем последнее посещение в секундах.


mktime(date("H"),date("i"),date("s"),date("n"),date("j"),date("Y"));


Дальше считаем разницу между текущим временем и сохраненным.


                  $date1 = /* то что забрали из базы */;
                  $date2 = mktime(date("H"),date("i"),date("s"),date("n"),date("j"),date("Y"));
                  $razn = $date2 - $date1;


Дальше считаем делением дни, часы и минуты, например:


$days = floor($razn/86400);
$hours = floor(($razn-86400*$days)/3600);
$mins = floor(($razn-86400*$days-3600*hours)/60);


Типа того..

  Ответить  
 
 автор: MHz   (01.04.2013 в 23:07)   письмо автору
 
   для: Jaroslav   (01.04.2013 в 12:29)
 

DateTime
DateTime::diff ()
DateTime::format ()

Все что потребуется, все готовое, стандартное) и думать не надо

  Ответить  
 
 автор: Jaroslav   (01.04.2013 в 17:03)   письмо автору
 
   для: confirm   (01.04.2013 в 12:35)
 

благодарю, хорошо подсказали ))

  Ответить  
 
 автор: confirm   (01.04.2013 в 12:35)   письмо автору
 
   для: Jaroslav   (01.04.2013 в 12:29)
 

Работа с датой/временем, это набор стандартных функций в РНР. Остается только определиться какое время считать "онлайн".

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования