Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вычесть из одной даты другую

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
justikim
Отправлено: 22 Апреля, 2014 - 23:01:41
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




В бд хранится дата последнего нажатия кнопки в формате 2014-04-22 23:59:20
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO $userstable VALUES(NOW())
  3.  

Цель вычислить какое время назад была нажата кнопка.
я делаю так
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT* FROM $userstable";
  3. $res = mysql_query($query) or die(mysql_error());
  4. $mass = mysql_fetch_assoc($res);
  5. $iResult=floor((strtotime(date('Y-m-d:H-i-s')) - strtotime($mass['time']))/(60*60*24));
  6. echo $iResult."<br>";
  7.  

выводит какое-то непонятное отрицательное значение. В чем проблема? спасибо
 
 Top
MADONZY
Отправлено: 23 Апреля, 2014 - 01:07:36
Post Id


Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Вот так:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT* FROM $userstable";
  2. $res = mysql_query($query) or die(mysql_error());
  3. $mass = mysql_fetch_assoc($res);
  4. $iResult=floor((time() - strtotime($mass['time']))/60/60/24);
  5. echo $iResult."<br>";


Так будет показано сколько дней назад. Если хочешь часов - убери деление на 24, хочешь минут - убери одно деление на 60 и так далее)
 
 Top
justikim
Отправлено: 23 Апреля, 2014 - 12:43:54
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




MADONZY пишет:
Вот так:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT* FROM $userstable";
  2. $res = mysql_query($query) or die(mysql_error());
  3. $mass = mysql_fetch_assoc($res);
  4. $iResult=floor((time() - strtotime($mass['time']))/60/60/24);
  5. echo $iResult."<br>";


Так будет показано сколько дней назад. Если хочешь часов - убери деление на 24, хочешь минут - убери одно деление на 60 и так далее)

Выводит -16183
дата в бд
2014-04-22 13:42:45
дата на комне 2014-04-23 13:42:45
UPD: убрал деление на 24, количество часов выводит нормально.

(Отредактировано автором: 23 Апреля, 2014 - 12:46:30)

 
 Top
MADONZY
Отправлено: 23 Апреля, 2014 - 15:25:02
Post Id


Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




justikim пишет:
Выводит -16183

невозможно, так как если в базе хранится правильная метка времени нажатия кнопки то число отричательным быть не может ну и соответственно если положительное число делить на положительное число 24 - то и ответ будет положительным. Возможно что-то не так с датой в БД.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB