[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: date() and GTM
qpurypaHT
Вот что удумал, сделал по примеру.

Суть скрипта рубить доступ к ПУ по сроку окончания на нее лицензии



$dateActivate = $userdate['expire_time'];
$dateNow = date("d.m.Y H:i:s");

if(strtotime($dateNow) > strtotime("$dateActivate +31 day")){
echo 'Лицензия кончилась';
die();
}


$dateNow дает время сервера, а как быть человеку, чей часовой пояс вовсе не МСК или ЕКБ!?



_____________
Если долго в одних стенах живешь, ты с ними сростаешься
arbuzmaster
Можно например в БД записывать время в формате unix TIMESTAMP и прибавлять к нему 31 день, соответственно при каждом заходе пользователя проверять, привысило метку или нет! Я так бан делал на 1час по IP. Тут уж не важно у кого какой пояс. По сути и с обычным форматом времени можно также сделать, как мне кажется, Вы же выдаете лицензию по серверному времени,так и обирайте по серверному а не по Гринвичу! wink.gif

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
YVSIK
установить нужное время или серверу или акку

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
qpurypaHT
Цитата (arbuzmaster @ 3.01.2017 - 22:48)
Можно например в БД записывать время в формате unix TIMESTAMP и прибавлять к нему 31 день, соответственно при каждом заходе пользователя проверять, привысило метку или нет! Я так бан делал на 1час по IP. Тут уж не важно у кого какой пояс. По сути и с обычным форматом времени можно также сделать, как мне кажется, Вы же выдаете лицензию по серверному времени,так и обирайте по серверному а не по Гринвичу! wink.gif

Просто выходит, что пользователь скажем с калининграда, оплатил месячный доступ, я врубаю в БД с поправкой на date_default_timezone_set("Asia/Yekaterinburg"); и человек получает отключение от сайта за 4 часа, по-этому и задался вопросом

_____________
Если долго в одних стенах живешь, ты с ними сростаешься
kaww
Stave,
используй unix timestamp
killer8080
Цитата (Stave @ 3.01.2017 - 21:02)
Просто выходит, что пользователь скажем с калининграда, оплатил месячный доступ, я врубаю в БД с поправкой на date_default_timezone_set("Asia/Yekaterinburg"); и человек получает отключение от сайта за 4 часа, по-этому и задался вопросом

потому что нефиг гнать даты из php в субд, она и сама прекрасно с ними работает! Используй для таких целей формат TIMESTAMP, и не будешь зависеть от настроек временных зон

UPDATE `user_table` SET `expire_date` = DATE_ADD(NOW(), INTERVAL 31 DAY) WHERE `id` = $id

проверять просрочку можно например так

SELECT *, IF(`expire_date` < NOW(), 1, 0) is_expired FROM `user_table` WHERE `id` = $id

if ($row['is_expired']) {
// время вышло
}
qpurypaHT
Цитата (killer8080 @ 4.01.2017 - 01:59)
Цитата (Stave @ 3.01.2017 - 21:02)
Просто выходит, что пользователь скажем с калининграда, оплатил месячный доступ, я врубаю в БД с поправкой на date_default_timezone_set("Asia/Yekaterinburg"); и человек получает отключение от сайта за 4 часа, по-этому и задался вопросом

потому что нефиг гнать даты из php в субд, она и сама прекрасно с ними работает! Используй для таких целей формат TIMESTAMP, и не будешь зависеть от настроек временных зон

UPDATE `user_table` SET `expire_date` = DATE_ADD(NOW(), INTERVAL 31 DAY) WHERE `id` = $id

проверять просрочку можно например так

SELECT *, IF(`expire_date` < NOW(), 1, 0) is_expired FROM `user_table` WHERE `id` = $id

if ($row['is_expired']) {
// время вышло
}

А можешь расписать запрос? а то я не силен в sql, благодарю

_____________
Если долго в одних стенах живешь, ты с ними сростаешься
killer8080
Цитата (Stave @ 4.01.2017 - 13:45)
А можешь расписать запрос? а то я не силен в sql, благодарю

так там вроде и так все очевидно blink.gif
первый запрос прописывает метку времени текущее дата/время плюс 31 день в поле expire_date
второй запрос просто делает выборку для этого юзера, и добавляет в неё виртуальное поле is_expired , которое является флагом истечения периода, 1 - время истекло, 0 - нет
Быстрый ответ:

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