Бонус после 00.00

  • Автор темы skroliks
  • Дата начала
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
Хочу сделать так, чтобы бонус можно было взять не через 24 часа, а после 00.00, т.е. как наступили новые сутки - кнопка бонуса опять появляется.

Создал переменную в бд пользователя bonus_time.
После нажатия на кнопку сбора бонуса присвоил ей значение текущего времени:
$db->Query("UPDATE db_users_b SET bonus_time = '".time()."' WHERE id = '$usid' LIMIT 1");

Перед функцией нажатия на кнопку поставил условие, что:
if (date("d")!=date("d",$user_data["bonus_time"])){ //(сравниваем текущую дату с датой, когда последний раз была нажата кнопка сбора бонуса)

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

} else echo "Вы уже получали сегодня бонус!"; // (т.е. если сегодняшняя дата и дата нажатия на кнопку не совпадают, то можно собрать бонус, если совпадают - то кнопки нет..)

Подскажите, я правильно мыслю? Меня просто смущает функция (date("d")!=date("d",$user_data["bonus_time"])) - я не силен пока в php, поэтому и спрашиваю. Это будет работать?

P.S. Делал функцию по аналогии с кодом, который нашел в интернете для cron на php

<?php
$cron_time=filemtime("cron_time"); //получаем время последнего изменения файла
if (date("d")!=date("d",$cron_time)) { //сравниваем день изменения файла с текущим
file_put_contents("cron_time",""); //перезаписываем файл cron_time
include "cron.php"; //выполняем скрипты из файла cron.php
}
?>
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
Ну что, в php никто не понимает? :(
Может у кого есть другой вариант как это сделать?
 
mythphp
Местный
Сообщения
74
Реакции
9
Напиши в тех. поддержку своего хостинга, скажи мне надо сделать чтобы таблица бонус очищалась каждый день в 00:00, я думаю тебе помогут там. У меня такая же ситуация была, мне всё сделали мои хостеры за бесплатно конечно же :)
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
mythphp написал(а):
Напиши в тех. поддержку своего хостинга, скажи мне надо сделать чтобы таблица бонус очищалась каждый день в 00:00, я думаю тебе помогут там. У меня такая же ситуация была, мне всё сделали мои хостеры за бесплатно конечно же :)
Да я все уже проверил - все работает! Так что можете брать пользоваться на здоровье! :)
 
Elizim
Участник
Сообщения
74
Реакции
14
skroliks написал(а):
Да я все уже проверил - все работает! Так что можете брать пользоваться на здоровье! :)
А можете выложить это как модуль, очень хочется установить
 
voodooas
Участник
Сообщения
21
Реакции
7
Зачем добавлять в таблицу db_users_b еще одну колонку (загружать ее) если она есть в db_bonus_list (date_add) а в целом задумка не плохая. Можно такое же использовать на выплатах.
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
Какая разница между раз в сутки или после 00:00 часов ? :) Смысл тот же
 
voodooas
Участник
Сообщения
21
Реакции
7
Небольшая разница есть, к примеру сегодня те получил бонус в 8 утра, завтра ты попал к компу в 12 дня, а после завтра 19, на следующий день ты не сможешь получить бонус в любое время, а только после 19 часов. В итоге один день может вылететь. Это нужно если хочется пользователям дать больше свободы - получить бонус когда ему удобно.
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
voodooas написал(а):
Небольшая разница есть, к примеру сегодня те получил бонус в 8 утра, завтра ты попал к компу в 12 дня, а после завтра 19, на следующий день ты не сможешь получить бонус в любое время, а только после 19 часов. В итоге один день может вылететь. Это нужно если хочется пользователям дать больше свободы - получить бонус когда ему удобно.
Хм... Ну разве что только это. Задумка хорошая, мне нравится.
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #10
VladL написал(а):
А кто пропустит 0:00 бонус 24 чача ждать ???
Если он 24 часа не был за ПК, то пропустит.
Так то по сути есть 24 часа на получение. Т.е. время любое.
Не так как с 20:00 до 20:00 допустим. А к компу подошел в 19:00, до бонуса далеко и лег спать :) Все! Бонус пропустил. А после 00:00 вроде как универсальнее метод.
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #11
voodooas написал(а):
Зачем добавлять в таблицу db_users_b еще одну колонку (загружать ее) если она есть в db_bonus_list (date_add) а в целом задумка не плохая. Можно такое же использовать на выплатах.
Какой толк от db_bonus_list (date_add), если там просто записывается дата в формате 1247827417? А в моем способе когда собрал бонус - заносится именно текущая дата (число) и это от 1 до 31 - совсем разные значения..
 
Remdev
Участник
Сообщения
77
Реакции
19
  • #12
skroliks написал(а):
Какой толк от db_bonus_list (date_add), если там просто записывается дата в формате 1247827417? А в моем способе когда собрал бонус - заносится именно текущая дата (число) и это от 1 до 31 - совсем разные значения..
Ну вариант не самый продуманный и не самый изящный(например, человек который получал бонус, а потом месяц не заходил, бонус получить сразу не сможет). Лучше бы вытаскивал время получения последнего бонус из db_bonus_list и там уже смотрел.
Код:
if(date('Ymd',$date_add)!=date('Ymd')) {
    /* Начисляем бонус */
} else {
    /* Говорим, что бонус уже начисляли */
}
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #13
Remdev написал(а):
Ну вариант не самый продуманный и не самый изящный(например, человек который получал бонус, а потом месяц не заходил, бонус получить сразу не сможет). Лучше бы вытаскивал время получения последнего бонус из db_bonus_list и там уже смотрел.
Код:
if(date('Ymd',$date_add)!=date('Ymd')) {
    /* Начисляем бонус */
} else {
    /* Говорим, что бонус уже начисляли */
}
Хороший вариант! Только я искал это все еще пол года назад и тогда совсем еще толком ничего не знал и не умел :)
А сейчас такие вопросы даже не возникают в голове ибо задачки уже намного сложнее.. ;)
 
Сверху