Узбагоительное
Умник
Как использовать UNIX-время.
Автор туторила: __ . Автор перевода: Ross
Оригинальная статья:
Введение:
Не многие понимают насколько полезным может оказаться использование UNIX-времени, именно для этого, я написал свой туториал.
Содержание учебного материала:
Введение
Содержание учебного материала
Что такое UNIX-время.
Почему, когда и как вы должны его использовать.
Полезные вычисления.
Расшифровка UNIX-времени.
Что такое UNIX-время:
UNIX-время (англ. Unix time) или POSIX-время — система описания моментов во времени, принятая в UNIX и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг); время с этого момента называют «эрой UNIX» (англ. Unix Epoch).
Использование UNIX-времени очень полезно во множестве скриптов.
Несмотря на простоту использования UNIX-времени, некоторые скрипты до сих пор используют более сложные и менее эффективные методы. Например, хранение часов, минут, секунд и лет и попытки их вычисления с помощью переменных, вместо того, чтобы использовать UNIX-время, использование которого было бы намного эффективнее.
Пример UNIX-времени:
1305302089
Почему, когда и как вы должны использовать UNIX-время:
Как вы можете использовать UNIX-время:
Пример: Временная VIP - довольно частая функция на многих серверах. Администратор, временно, может выдать кому-то специальное звание, после истечения определенного промежутка времени звание забирается и закрывается доступ к использованию каких-либо функций.
Код для этого примера вы можете найти здесь. Обратите внимание, что код не был протестирован - он был лишь скомпилирован.
Использование UNIX-времени очень эффективно в PAWN. Использование gettime() без каких-либо параметров возвращает UNIX-время.
Почему вы должны использовани UNIX-время:
В чем смысл создания нескольких переменных, когда это не нужно? Все, что вам действительно нужно, это одно длинное целое число.
Когда вы должны использовать UNIX-время:
Я написал краткий список, где можно использовать UNIX-время. Стоит отметить, что существует много других примеров для использования UNIX-времени:
Временная VIP
Временные дома
Временные бизнеса
Временный администратор
И многие другие...
Некоторые полезные вычисления:
Результаты данных вычислений следует прибавлять к gettime():
1 минута (60 секунд) = 60 * 1 = 60
2 минуты (120 секунд) = 60 * 2 = 120
1 час (60 минут) = 60 * 60 = 3600
2 часа (120 минут) = 60 * 120 = 7200
1 день (24 часа) = 60 * 60 * 24 = 86400
2 дня (48 часов) = 60 * 60 * 48 = 172800
1 неделя (7 дней) = 60 * 60 * 24 * 7 = 604800
2 недели (14 дней) = 60 * 60 * 24 * 14 = 1209600
1 месяц (30 дней) = 60 * 60 * 24 * 30 = 2592000
2 месяца (60 дней) = 60 * 60 * 24 * 60 = 5184000
1 год (365 дней) = 60 * 60 * 24 * 365 = 31536000
2 года (730 дней) = 60 * 60 * 24 * 730 = 63072000
Пример:
Расшифровка UNIX-времени:
В PHP и некоторых других похожих языках, вы можете перевести UNIX-время в дату с использованием функции date(). К сожалению, в PAWN нет таких функций, с помощью которых это можно сделать.
Благодаря Blacklite, была сделана функция, позволяющая сравнить два времени (К примеру, время, которые вы сохранили и текущее время) для получения количества времени между сохранённым и нынешним.
Код функции:
Теоретически, эту функцию можно использовать так (Мною она проверена не была):
Автор туторила: __ . Автор перевода: Ross
Оригинальная статья:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Введение:
Не многие понимают насколько полезным может оказаться использование UNIX-времени, именно для этого, я написал свой туториал.
Содержание учебного материала:
Введение
Содержание учебного материала
Что такое UNIX-время.
Почему, когда и как вы должны его использовать.
Полезные вычисления.
Расшифровка UNIX-времени.
Что такое UNIX-время:
UNIX-время (англ. Unix time) или POSIX-время — система описания моментов во времени, принятая в UNIX и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг); время с этого момента называют «эрой UNIX» (англ. Unix Epoch).
Использование UNIX-времени очень полезно во множестве скриптов.
Несмотря на простоту использования UNIX-времени, некоторые скрипты до сих пор используют более сложные и менее эффективные методы. Например, хранение часов, минут, секунд и лет и попытки их вычисления с помощью переменных, вместо того, чтобы использовать UNIX-время, использование которого было бы намного эффективнее.
Пример UNIX-времени:
1305302089
Почему, когда и как вы должны использовать UNIX-время:
Как вы можете использовать UNIX-время:
Пример: Временная VIP - довольно частая функция на многих серверах. Администратор, временно, может выдать кому-то специальное звание, после истечения определенного промежутка времени звание забирается и закрывается доступ к использованию каких-либо функций.
Код для этого примера вы можете найти здесь. Обратите внимание, что код не был протестирован - он был лишь скомпилирован.
Использование UNIX-времени очень эффективно в PAWN. Использование gettime() без каких-либо параметров возвращает UNIX-время.
Почему вы должны использовани UNIX-время:
В чем смысл создания нескольких переменных, когда это не нужно? Все, что вам действительно нужно, это одно длинное целое число.
Когда вы должны использовать UNIX-время:
Я написал краткий список, где можно использовать UNIX-время. Стоит отметить, что существует много других примеров для использования UNIX-времени:
Временная VIP
Временные дома
Временные бизнеса
Временный администратор
И многие другие...
Некоторые полезные вычисления:
Результаты данных вычислений следует прибавлять к gettime():
1 минута (60 секунд) = 60 * 1 = 60
2 минуты (120 секунд) = 60 * 2 = 120
1 час (60 минут) = 60 * 60 = 3600
2 часа (120 минут) = 60 * 120 = 7200
1 день (24 часа) = 60 * 60 * 24 = 86400
2 дня (48 часов) = 60 * 60 * 48 = 172800
1 неделя (7 дней) = 60 * 60 * 24 * 7 = 604800
2 недели (14 дней) = 60 * 60 * 24 * 14 = 1209600
1 месяц (30 дней) = 60 * 60 * 24 * 30 = 2592000
2 месяца (60 дней) = 60 * 60 * 24 * 60 = 5184000
1 год (365 дней) = 60 * 60 * 24 * 365 = 31536000
2 года (730 дней) = 60 * 60 * 24 * 730 = 63072000
Пример:
PHP:
new
iTime = gettime() + 5184000; // 2 месяца.
В PHP и некоторых других похожих языках, вы можете перевести UNIX-время в дату с использованием функции date(). К сожалению, в PAWN нет таких функций, с помощью которых это можно сделать.
Благодаря Blacklite, была сделана функция, позволяющая сравнить два времени (К примеру, время, которые вы сохранили и текущее время) для получения количества времени между сохранённым и нынешним.
Код функции:
PHP:
stock timec(timestamp, compare = -1) {
if (compare == -1) {
compare = gettime();
}
new
n,
// on the following line, I have removed the need for the diff() function.
// if you want to use the diff() function in pawn, replace the following with:
// Float:d = diff(timestamp, compare),
Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
returnstr[32];
if (d < 60) {
format(returnstr, sizeof(returnstr), "< 1 minute");
return returnstr;
} else if (d < 3600) { // 3600 = 1 hour
n = floatround(floatdiv(d, 60.0), floatround_floor);
format(returnstr, sizeof(returnstr), "minute");
} else if (d < 86400) { // 86400 = 1 day
n = floatround(floatdiv(d, 3600.0), floatround_floor);
format(returnstr, sizeof(returnstr), "hour");
} else if (d < 2592000) { // 2592000 = 1 month
n = floatround(floatdiv(d, 86400.0), floatround_floor);
format(returnstr, sizeof(returnstr), "day");
} else if (d < 31536000) { // 31536000 = 1 year
n = floatround(floatdiv(d, 2592000.0), floatround_floor);
format(returnstr, sizeof(returnstr), "month");
} else {
n = floatround(floatdiv(d, 31536000.0), floatround_floor);
format(returnstr, sizeof(returnstr), "year");
}
if (n == 1) {
format(returnstr, sizeof(returnstr), "1 %s", returnstr);
} else {
format(returnstr, sizeof(returnstr), "%d %ss", n, returnstr);
}
return returnstr;
}
PHP:
new
iRandomTime = gettime()-86402; // Из нынешнего времени вычитаем 24 часа и 2 секунды
szMessage[64];
format(szMessage, sizeof(szMessage), "It has been: %s", timec(iRandomTime)); // Записываем в szMessage, сколько времени прошло с тех пор, как мы объявили iRandomTime
print(szMessage); // Выводим szMessage
