 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Функция для преоброзования времени в юникстайм
| |
| Impereal | Дата: Четверг, 22.09.2011, 17:10 | Сообщение # 1 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Нужна функция для преобразования обычного времени в юникстайм. Говорят, она стандартна в павн, подскажите кто знает. Заранее спасибо.
Прощай самп-рус =Р
|
| |
|
|
| Fus1 | Дата: Четверг, 22.09.2011, 17:22 | Сообщение # 2 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Попробуй это ?
|
| |
|
|
| Impereal | Дата: Четверг, 22.09.2011, 17:26 | Сообщение # 3 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Fus1, нужен не конвертор, а конкретно функция, так как преобразовывать в моде буду. P.S. Нужна только функция перевода из стандартного вида даты,времени в юникс, из юникса в стандартное не надо.
Прощай самп-рус =Р
|
| |
|
|
| Fus1 | Дата: Четверг, 22.09.2011, 17:40 | Сообщение # 4 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Может быть кому пригодиться ещё.
Вот , функция Возвращает UNIX-timestamp
Code stock mktime(uhour,uminute,usecond,uday,umonth,uyear) { new timestamp2; timestamp2 = usecond + (uminute * 60) + (uhour * 3600); new days_of_month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; if ( ((uyear % 4 == 0) && (uyear % 100 != 0)) || (uyear % 400 == 0) ) { days_of_month[1] = 29; } else { days_of_month[1] = 28; } new days_this_year = 0; days_this_year = --uday; if(umonth > 1) { for(new i=0; i<umonth-1;i++) { days_this_year += days_of_month[i]; } } timestamp2 += days_this_year * 86400; for(new j=1970;j<uyear;j++) { timestamp2 += 31536000; if ( ((j % 4 == 0) && (j % 100 != 0)) || (j % 400 == 0) ) timestamp2 += 86400; } return timestamp2; }
Ещё,
стандартная функция gettime возвращает текущий unix timestamp, она также может возвращать по ссылке отдельные значения часа, минуты и секунды как обычно. Чтобы узнать unix timestamp сервера , можно просто написать new stamp = gettime();
стандартная getdate возвращает день текущего года по порядку ну и, канеш, по ссылке возврашает день месяц и год отдельно. К примеру, если на дворе 23-е февраля, то getdate(); вернет 54 (31 дня января + 23 февраля).
Возвращает UNIX TIMESTAMP в соответствии с указанной датой.
Code stock date_to_timestamp ( year = 1970, month = 1, day = 1, hour = 0, minute = 0, second = 0 ) { switch ( month ) { case 2 : day += 31; case 3 : day += 59; case 4 : day += 90; case 5 : day += 120; case 6 : day += 151; case 7 : day += 181; case 8 : day += 212; case 9 : day += 243; case 10 : day += 273; case 11 : day += 304; case 12 : day += 334; }
return ( second + minute*60 + hour*3600 + (day - 1)*86400 + (year - 1970)*31557600 + ( year % 4 == 0 ? 21600 : 0 ) ); }
timestamp_to_date - обратное преобразование из unix timestamp в отдельные - год, месяц, число, час, минуту, секунду.
Code stock timestamp_to_date ( unix_timestamp = 0,
& year = 1970, & month = 1, & day = 1, & hour = 0, & minute = 0, & second = 0 ) { year = unix_timestamp / 31557600; unix_timestamp -= year * 31557600; year += 1970;
if ( year % 4 == 0 ) unix_timestamp -= 21600;
day = unix_timestamp / 86400;
switch ( day ) { // в second будет временно хранится число месяца case 0..30 : { second = day; month = 1; } case 31..58 : { second = day - 31; month = 2; } case 59..89 : { second = day - 59; month = 3; } case 90..119 : { second = day - 90; month = 4; } case 120..150 : { second = day - 120; month = 5; } case 151..180 : { second = day - 151; month = 6; } case 181..211 : { second = day - 181; month = 7; } case 212..242 : { second = day - 212; month = 8; } case 243..272 : { second = day - 243; month = 9; } case 273..303 : { second = day - 273; month = 10; } case 304..333 : { second = day - 304; month = 11; } case 334..366 : { second = day - 334; month = 12; } }
unix_timestamp -= day * 86400; hour = unix_timestamp / 3600;
unix_timestamp -= hour * 3600; minute = unix_timestamp / 60;
unix_timestamp -= minute * 60; day = second + 1; second = unix_timestamp; }
Сообщение отредактировал Fus1 - Четверг, 22.09.2011, 17:42 |
| |
|
|
| Impereal | Дата: Четверг, 22.09.2011, 22:56 | Сообщение # 5 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Fus1, Проверил последнии 2 функции, работают не коректно. Ладно, свою напишу, все же спасибо за помощь...
Прощай самп-рус =Р
Сообщение отредактировал Impereal - Четверг, 22.09.2011, 22:57 |
| |
|
|
| Fus1 | Дата: Четверг, 22.09.2011, 23:41 | Сообщение # 6 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Quote (Fus1) стандартная функция gettime возвращает текущий unix timestamp, она также может возвращать по ссылке отдельные значения часа, минуты и секунды как обычно. Чтобы узнать unix timestamp сервера , можно просто написать new stamp = gettime();
Не? Кстати, а что именно не коректно работает ? Функции не мои, брал с оффа, писал Alexey вроде.
|
| |
|
|
| Alcoholik | Дата: Пятница, 23.09.2011, 11:24 | Сообщение # 7 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| либо я темы не понял, либо хз) В mysql есть такое, всё работает. Quote format(query, sizeof(query), "INSERT INTO logins (time,ip,userid,mesto) VALUES (UNIX_TIMESTAMP(),'%s',%d,1)", escip, sqlplayerid); Добавлено (23.09.2011, 11:24) --------------------------------------------- Или тебе куда это?
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
| Impereal | Дата: Пятница, 23.09.2011, 16:03 | Сообщение # 8 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| KroN, оу, спасибо Quote (Fus1) Не? Кстати, а что именно не коректно работает ? Функции не мои, брал с оффа, писал Alexey вроде. Ну получение да, можно gettime, а вот с обратным преоброзованием есть некоторые баги.
Прощай самп-рус =Р
|
| |
|
|
|
 |
|
 | |
| |
|