Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Как Установить Дату Осады (https://forum.zone-game.info/showthread.php?t=2311)

kokaaaa 20.11.2008 03:53

Как Установить Дату Осады
 
как назначить дату осады в L2Emu gracia part II
прет... у мну есть полезная инфа.
перерыл нет,и знаето что? ответа на свой вопрос не нашол.
И НА ЕТО ФОРУМЕ ТОЖЕ!
долго думал и начал експерементировать, что и натолкнуло на ответ.


Т.к. в БД все отщеты идут в милисекудах то и дата логически должна быть ими. А от отщет тикает от 1/1/1970

Теперь обясню что я делал:

И так, если я имею

1189936800000 мс в графе siegedate то соответственно

1189936800000 разделить не 1000 равно секундам от 1/1/1970 до даты осады
ето - 1189936800 секунд

дальше делаем так
1189936800 / 60 - ето будут минуты от 1/1/1970 до даты осады
ето = 19832280 минутам

после делаем тан
19832280 / 60 - ето часы от 1/1/1970 до даты осады
ето = 330538 часов

а теперь самое сложное) дуваю все знают что не каждый год имеет 365 дней:)

поетому с 1/1/1970 по 1/1/2008 мы имеем 9 лет с 366 днями, 1972, 1976,1980, 1984, 1988, 1992, 1996, 2000, 2004.

делаем так

с 1/1/1970 по 1/1/2007 = 37 лет
37 лет x 365 дней = 13505 дней
13505 дней x 24 часов = 324120 часов
324120 часов x 60 сек = 19447200 сек
19447200 сек x 1000 милисек = 19447200000 милисек

19447200000 еть пишем в графу siegeDate для установки осады на 1/1/2007 !

Пишем мну СПС
Easy :)

(ето пример у каждого может быть по разному)

НО я вот подумал и понял что ещё проще пощетать какая разница между той датой на которую стоит осада и той что мы хочем.
переводим в милисекунды и отнимаем от той(или плюсуем к той) что пишеться в БД.
вуаля и вот то что мы хотели

Aquanox 20.11.2008 09:45

Ответ: Как Установить Дату Осады
 
можно использовать РНР скрипт:

Код:

<?php
// день, месяц, год
echo strtotime("15 May 2008"), "000\n";
// месяц, день, год
echo strtotime("05/15/2008"), "000\n";
?>

доки:
ru2.php.net/manual/ru/function.date.php
ru2.php.net/manual/ru/function.strtotime.php

HaTTaB 21.11.2008 01:32

Ответ: Как Установить Дату Осады
 
Супер!!!! ППЦ

Это как анегдот

PROGRAMMATOR 21.11.2008 05:02

Ответ: Как Установить Дату Осады
 
HaTTaB, теперь внимательно изучаем правила форума, что бы потом не спрашивали, а за что забанили.

Stema 21.11.2008 19:29

Ответ: Как Установить Дату Осады
 
Хм.. Что-то я ничего не понял, но смотря на мой уровень знаний по математике, это не странно :))


Вот у меня время осады следующее:

1227376800000


Как ее теперь перевести на 21.11.2008г. 13:00 ?))

Заранее благодарен)

kokaaaa 21.11.2008 20:05

Ответ: Как Установить Дату Осады
 
Цитата:

Сообщение от Stema (Сообщение 23315)
Хм.. Что-то я ничего не понял, но смотря на мой уровень знаний по математике, это не странно :))


Вот у меня время осады следующее:

1227376800000


Как ее теперь перевести на 21.11.2008г. 13:00 ?))

Заранее благодарен)

1227376800000 - ето сколько милисекунд осталось до осады от 1.1.1970

допустим осада в пятницу 12.00 (1227376800000). тебе нужна осада в суботу 13.00

значит 1227376800000 + одни сутки и один час(25 часов)

переводиш 25 часов в Милисекунды.
25*60=1500 минут
1500*60= 90 000 секунд
90 000*1000=90 000 000 милисекунд
1227376800000(пятница 12.00) + 90 000 000 (разница времени до суботы 13.00) = 1227466800000 (вот тебе и кол-во милисекун с отщетом с 1\1\1970, которое надо вписать в таблицу)

блин да мне мануалы писать!
кликаем спасибки:)

neshika 20.05.2009 11:47

Ответ: Как Установить Дату Осады
 
из вышесказанного формула:

N - число из столбика siegeDate из БД ( в примере 1227376800000)
y - сколько часов до следующей осады ( в примере 25)
X - число в Мсекундах для обновленной базы ( в примере 1227466800000)

N + 3 600 000y = X

NUBass 21.05.2009 19:15

Ответ: Как Установить Дату Осады
 
Зачем изобретать велосипед , если есть куча нормальных прог для преобразования времени ,только добавить 000(миллисекунды) и все нужное время получено
Вот одна из них http://www.aelius.com/njh/unixtime/

Artemis E. 12.09.2009 08:54

Ответ: Как Установить Дату Осады
 
Более удобный вариант =)
http://www.unixtimestamp.com/index.php

mimita 20.11.2009 15:55

Re: Как Установить Дату Осады
 
Цитата:

Сообщение от kokaaaa (Сообщение 23190)
как назначить дату осады в L2Emu gracia part II
прет... у мну есть полезная инфа.
перерыл нет,и знаето что? ответа на свой вопрос не нашол.
И НА ЕТО ФОРУМЕ ТОЖЕ!
долго думал и начал експерементировать, что и натолкнуло на ответ.


Т.к. в БД все отщеты идут в милисекудах то и дата логически должна быть ими. А от отщет тикает от 1/1/1970

Теперь обясню что я делал:

И так, если я имею

1189936800000 мс в графе siegedate то соответственно

1189936800000 разделить не 1000 равно секундам от 1/1/1970 до даты осады
ето - 1189936800 секунд

дальше делаем так
1189936800 / 60 - ето будут минуты от 1/1/1970 до даты осады
ето = 19832280 минутам

после делаем тан
19832280 / 60 - ето часы от 1/1/1970 до даты осады
ето = 330538 часов

а теперь самое сложное) дуваю все знают что не каждый год имеет 365 дней:)

поетому с 1/1/1970 по 1/1/2008 мы имеем 9 лет с 366 днями, 1972, 1976,1980, 1984, 1988, 1992, 1996, 2000, 2004.

делаем так

с 1/1/1970 по 1/1/2007 = 37 лет
37 лет x 365 дней = 13505 дней
13505 дней x 24 часов = 324120 часов
324120 часов x 60 сек = 19447200 сек
19447200 сек x 1000 милисек = 19447200000 милисек

19447200000 еть пишем в графу siegeDate для установки осады на 1/1/2007 !

Пишем мну СПС
Easy :)

(ето пример у каждого может быть по разному)

НО я вот подумал и понял что ещё проще пощетать какая разница между той датой на которую стоит осада и той что мы хочем.
переводим в милисекунды и отнимаем от той(или плюсуем к той) что пишеться в БД.
вуаля и вот то что мы хотели

Очень помог. Я в Exel всё сделал функция "Дата и время", удобно переводит годы в дни, дни в секунды и т.д.


Текущее время: 13:13. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot