Как Установить Дату Осады - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 20.11.2008, 03:53   #1
Пользователь

Автор темы (Топик Стартер) Как Установить Дату Осады

как назначить дату осады в 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

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

НО я вот подумал и понял что ещё проще пощетать какая разница между той датой на которую стоит осада и той что мы хочем.
переводим в милисекунды и отнимаем от той(или плюсуем к той) что пишеться в БД.
вуаля и вот то что мы хотели
kokaaaa вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 20.11.2008, 09:45   #2
Пользователь

По умолчанию Ответ: Как Установить Дату Осады

можно использовать РНР скрипт:

Код:
<?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
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 21.11.2008, 01:32   #3
Пользователь

По умолчанию Ответ: Как Установить Дату Осады

Супер!!!! ППЦ

Это как анегдот
HaTTaB вне форума Отправить сообщение для HaTTaB с помощью ICQ Ответить с цитированием
Непрочитано 21.11.2008, 05:02   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Ответ: Как Установить Дату Осады

HaTTaB, теперь внимательно изучаем правила форума, что бы потом не спрашивали, а за что забанили.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 21.11.2008, 19:29   #5
Пользователь

По умолчанию Ответ: Как Установить Дату Осады

Хм.. Что-то я ничего не понял, но смотря на мой уровень знаний по математике, это не странно )


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

1227376800000


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

Заранее благодарен)
Stema вне форума Ответить с цитированием
Непрочитано 21.11.2008, 20:05   #6
Пользователь

Автор темы (Топик Стартер) Ответ: Как Установить Дату Осады

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


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

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, которое надо вписать в таблицу)

блин да мне мануалы писать!
кликаем спасибки
kokaaaa вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 20.05.2009, 11:47   #7
Пользователь

По умолчанию Ответ: Как Установить Дату Осады

из вышесказанного формула:

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

N + 3 600 000y = X
neshika вне форума Ответить с цитированием
Непрочитано 21.05.2009, 19:15   #8
Аватар для NUBass
Пользователь

По умолчанию Ответ: Как Установить Дату Осады

Зачем изобретать велосипед , если есть куча нормальных прог для преобразования времени ,только добавить 000(миллисекунды) и все нужное время получено
Вот одна из них http://www.aelius.com/njh/unixtime/
NUBass вне форума Ответить с цитированием
Непрочитано 12.09.2009, 08:54   #9
Аватар для Artemis E.
Пользователь

По умолчанию Ответ: Как Установить Дату Осады

Более удобный вариант =)
http://www.unixtimestamp.com/index.php
Artemis E. вне форума Ответить с цитированием
Непрочитано 20.11.2009, 15:55   #10
Пользователь

По умолчанию Re: Как Установить Дату Осады

Цитата:
Сообщение от kokaaaa Посмотреть сообщение
как назначить дату осады в 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 всё сделал функция "Дата и время", удобно переводит годы в дни, дни в секунды и т.д.
mimita вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 23:57. Часовой пояс GMT +3.

Вверх