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 :: Операции с datetime

 PHP.SU

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


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

> Без описания
glutaminefree
Отправлено: 25 Апреля, 2011 - 18:05:21
Post Id



Новичок


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


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




В базе данных имеются данные в формате datetime. При обращении к скрипту он должен сравнивать текущее время с временем последней записи.

текущее время получаю так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $t = strftime("%Y-%m-%d %H:%M:%S");


Нужно сравнить, не превышает ли текущее время время последней записи в базе более чем на час. Как это можно сделать?

И ещё можно ли получить из базы данных самое последнее время вот таким образом?

CODE (htmlphp):
скопировать код в буфер обмена
  1. $v = mysql_fetch_array(mysql_query("SELECT MAX(time) as FROM game"));
 
 Top
Мелкий Супермодератор
Отправлено: 25 Апреля, 2011 - 18:18:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




0) переводите в unixtime, можно сразу средствами MySQL http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]n_unix-timestamp
1) да, max(`time`) корректный запрос. Вроде бы Ха-ха
В крайнем случае
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `tbl` ORDER BY `time` DESC LIMIT 1


-----
PostgreSQL DBA
 
 Top
vsll
Отправлено: 25 Апреля, 2011 - 18:27:37
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


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




Мелкий прав
поробуйте както так, я делала работает, только у меня другое сочетание запросов

PHP:
скопировать код в буфер обмена
  1. $now_time = mysql_query("SELECT NOW() AS now");
  2. $nowti = mysql_fetch_array($now_time);
  3.  
  4. $diff = mysql_query("SELECT TIMESTAMPDIFF(HOUR, '".$data['game_date']."', '".$nowti['now']."') AS hour");
  5. $delta = mysql_fetch_array($diff);
  6. //ну и нужная вам арифметика с $delta['hour']

'".$data['game_date']."', '".$nowti['now']."' - везде написано наоборот, но у меня подозрение что второе больше, в любом случае поменяйте местами, если будет отрицательное число
$data['game_date'] получить из базы
 
 Top
glutaminefree
Отправлено: 25 Апреля, 2011 - 18:44:21
Post Id



Новичок


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


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




Я подумал, что удобнее будет хранить данные в таблице в формате unix времени. Тогда ничего переводить никуда не надо будет.
Спасибо за наведение на мысль.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB