[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: DATETIME
Страницы: 1, 2
savelikan
Привет всем! У меня есть две даты в формате DATETIME
Мне нужно узнать есть ли между ними разница, например, больше 30 минут?
date("Y-m-d H:i:s")
$GLOBAL_user['users_lastactive']

Спасибо!

_____________
Одесса - мой город!)))
Valick
savelikan, я так понимаю используется БД?
Именно на уровне СУРБД и необходимо решать эту задачу.


_____________
Стимулятор ~yoomoney - 41001303250491
savelikan
Цитата (Valick @ 22.12.2014 - 12:33)
savelikan, я так понимаю используется БД?
Именно на уровне СУРБД и необходимо решать эту задачу.

Я получил данные пользователя из БД, и потом, если от последней активности пользователя прошло больше 30 минут - обновить запись , что новый визит позьзователя на сайт.
А на PHP никак не можна?

_____________
Одесса - мой город!)))
Valick
Цитата
А на PHP никак не можна?

можно, а нужно?
всё что вы написали осуществляется одним запросом, без необходимости тащить всё это в РНР
кстати речь о зарегистрированных или не зарегистрированных (точнее об авторизованных или нет) пользователях?

_____________
Стимулятор ~yoomoney - 41001303250491
savelikan
Вот такая у меня база:
CREATE TABLE IF NOT EXISTS `users` (
`users_id` int(11) NOT NULL AUTO_INCREMENT,
`users_range` int(11) NOT NULL,
`users_nickname` varchar(25) NOT NULL,
`users_email` varchar(100) NOT NULL,
`users_password` varchar(32) NOT NULL,
`users_salt` varchar(5) NOT NULL,
`users_activate` varchar(32) NOT NULL,
`users_ipreg` varchar(100) NOT NULL,
`users_iplast` varchar(100) NOT NULL,
`users_lastvisit` datetime NOT NULL,
`users_lastactive` datetime NOT NULL,
PRIMARY KEY (`users_id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

"SELECT * FROM `users` WHERE `users_email`='".$users_email."' LIMIT 1"
потом обновить users_lastactive = NOW
Если между users_lastactive и users_lastvisit больше 30мин - тогда users_lastvisit = NOW()

Тоесть, всегда будет два запроса - выбрать и обновить.
Вот так)

_____________
Одесса - мой город!)))
savelikan
если через SQL нельзя - подскажыте хотя бы как на PHP сделать?

_____________
Одесса - мой город!)))
Valick
UPDATE `users` 
SET users_lastvisit = IF(users_lastactive + INTERVAL 30 MINUTE < NOW(),NOW(),users_lastvisit),
users_lastactive = NOW()
WHERE `users_email`='$users_email'


ну почему же нельзя, проанализируйте запрос
только странно что по email идентифицируете юзера, обычно там id юзера
подкорректировал логику, скорее всего нужно если 30 минут прошло с момента последней активности, а не с момента визита иначе каждые пол часа будет новый визит

_____________
Стимулятор ~yoomoney - 41001303250491
savelikan
Цитата (Valick @ 22.12.2014 - 16:22)

ну почему же нельзя, проанализируйте запрос
только странно что по email идентифицируете юзера, обычно там id юзера
подкорректировал логику, скорее всего нужно если 30 минут прошло с момента последней активности, а не с момента визита иначе каждые пол часа будет новый визит

А что легче в плане нагрузки на сервер: в запросе sql или на php?

_____________
Одесса - мой город!)))
Valick
практически всегда легче решать задачу на уровне СУРБД
в данном случае даже и сомневаться нет причин

_____________
Стимулятор ~yoomoney - 41001303250491
inpost
Сравнивать лучше на том уровне, кто генерирует первоначальную дату, так как в случае неправильных настроек сервера могут быть серьёзные проблемы. PHP и MySQL время могут отличаться.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Valick
inpost, не болтайте ерундой


_____________
Стимулятор ~yoomoney - 41001303250491
johniek_comp
inpost
они все берут время сервера, системное, которое ОС отдает, а не хранят каждое свое

_____________
user posted image
inpost
johniek_comp
Сначала изучи мануал smile.gif
Ты же вроде как бросил ПХП и Мускул. Что делаешь на нашем форуме? Питон или какой ты там язык сейчас учишь и работаешь?

Valick
Например? Ты не знаешь, что часовые пояса можно разные указать и будут проблемы? ohmy.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Valick
Цитата
Ты не знаешь, что часовые пояса можно разные указать и будут проблемы?

а еще можно диск С отформатировать, и проблемы покруче будут
Объясню популярнее...
Если вы работаете с БД, то для вас не должно быть ничего остального, БД - это локомотив, всё остальное это вагоны (включая РНР) Проблемы начинаются когда забывают об этом и начинают мешать мух с котлетами. Если по какой-то непонятной причине вы используете БД как кладовку, исключительно для хранения информации, то я чур не виноват. SQL мощнейший язык для обработки информации и в нём мощнейшая поддержка работы с датами и временем, отказываться от этого просто самоубийство.


_____________
Стимулятор ~yoomoney - 41001303250491
inpost
Valick
значит ты не работаешь и не делаешь по 10 сайтов в месяц, так как был бы знаком с подобной проблемой многих хостеров.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

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