UNIX-время или POSIX-время (англ. Unix time) - способ кодирования времени, принятый в UNIX и других POSIX-совместимых операционных системах.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют "эрой UNIX" (англ. Unix Epoch).
Где можно использовать это:
Проверка на флуд.
Оплата дома/бизнеса.
Проверка сколько прошло дней/недель/месяцев с какого-то времени.
Небольшая таблица:
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют "эрой UNIX" (англ. Unix Epoch).
Где можно использовать это:
Проверка на флуд.
Оплата дома/бизнеса.
Проверка сколько прошло дней/недель/месяцев с какого-то времени.
Небольшая таблица:
Обычная дата(Human readable time) | Секунды
1 минута | 60 секунд
1 час | 3600 секунд
1 день | 86400 секунд
1 неделя | 604800 секунд
1 месяц (30.44 дней) | 2629743 секунд
1 год (365.24 дней) | 31556926 секунд
Пример:
Например у нас на сервере есть VIP, мы его выдаём на 30 дней.
Потом проверяем на сколько у тебя он остался при заходе и выводим это в чат.
Выдача VIP:
Код:
PlayerInfo[playerid][pVip] = gettime()+60*60*24*30;
SendClientMessage(playerid,-1,"Вам выдана VIP на 30 дней");
Чтобы точно не ошибиться или же если вы забыли просто действуйте умножением.
60 (так как в минуте 60 сек) * 60 (так как в часе 60 мин) * 24 (так как 24 часа) * 30 (дней сколько вам надо)
Вывод сколько осталось VIP:
60 (так как в минуте 60 сек) * 60 (так как в часе 60 мин) * 24 (так как 24 часа) * 30 (дней сколько вам надо)
Вывод сколько осталось VIP:
Сначала создадим stock для получения информации сколько прошло с этого времени
Код:
stock timec(timestamp, compare = -1) {
if (compare == -1) {
compare = gettime();
}
new
n,
Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
returnstr[32];
if (d < 60) {
format(returnstr, sizeof(returnstr), "меньше минуты");
return returnstr;
} else if (d < 3600) { // 3600 = 1 hour
n = floatround(floatdiv(d, 60.0), floatround_floor);
format(returnstr, sizeof(returnstr), "мин.");
} else if (d < 86400) { // 86400 = 1 day
n = floatround(floatdiv(d, 3600.0), floatround_floor);
format(returnstr, sizeof(returnstr), "ч.");
} else if (d < 2592000) { // 2592000 = 1 month
n = floatround(floatdiv(d, 86400.0), floatround_floor);
format(returnstr, sizeof(returnstr), "дн.");
} else if (d < 31536000) { // 31536000 = 1 year
n = floatround(floatdiv(d, 2592000.0), floatround_floor);
format(returnstr, sizeof(returnstr), "мес.");
} else {
n = floatround(floatdiv(d, 31536000.0), floatround_floor);
format(returnstr, sizeof(returnstr), "г.");
}
if (n == 1) {
format(returnstr, sizeof(returnstr), "1 %s", returnstr);
} else {
format(returnstr, sizeof(returnstr), "%d %s", n, returnstr);
}
return returnstr;
}
И сам показ информации
Код:
static const fmt_str[] = "У вас осталось %s VIP";
new str1[sizeof(fmt_str)-2+32];
format(str1, sizeof(str1), fmt_str, timec(PlayerInfo[playerid][pVip]));
SendClientMessage(playerid,-1,str1);
Автор темы: Batka1337
Последнее редактирование модератором: