Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Скорость времени x2

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Как ускорить функцию date(или же время) в два раза?
Al_KidSe
Отправлено: 27 Августа, 2013 - 20:32:03
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Здравствуйте, кодировщики. У меня есть сайт, на нем онлайн игра. И мне захотелось в игре ввести отдельное время. Не как реальное, а чтобы двигалось быстрее в два раза. Сам пробовал но так и не смог ничего сделать. Вообще не понимаю, возможно ли такое вообще. Пожалуйста помогите, буду очень благодарен.
 
 Top
OrmaJever Модератор
Отправлено: 27 Августа, 2013 - 20:39:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




если вам нужно узнать просто время прошедшее с последнего события, то разницу текущего времени и времени события просто умножайте на 2


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Al_KidSe
Отправлено: 27 Августа, 2013 - 20:41:05
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




OrmaJever пишет:
если вам нужно узнать просто время прошедшее с последнего события, то разницу текущего времени и времени события просто умножайте на 2

Нет, мне нужно сделать глобальное время для онлайн игры. Чтобы не у каждого свое время было а у каждого одинаковое.

(Отредактировано автором: 27 Августа, 2013 - 20:41:24)

 
 Top
soffrick
Отправлено: 27 Августа, 2013 - 20:43:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




Al_KidSe пишет:
Здравствуйте, кодировщики

Здравствуй, юзверьойд


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
OrmaJever Модератор
Отправлено: 27 Августа, 2013 - 20:46:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Al_KidSe пишет:
Нет, мне нужно сделать глобальное время для онлайн игры. Чтобы не у каждого свое время было а у каждого одинаковое.

Ну, дак вам его нужно отображать или просто вычислять игровое время между событиями?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Al_KidSe
Отправлено: 27 Августа, 2013 - 20:51:55
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




OrmaJever пишет:
Al_KidSe пишет:
Нет, мне нужно сделать глобальное время для онлайн игры. Чтобы не у каждого свое время было а у каждого одинаковое.

Ну, дак вам его нужно отображать или просто вычислять игровое время между событиями?

Отображать, просто отображать. Как аксессуар, чтобы игроки ориентировались во времени там.
(Добавление)
soffrick пишет:
Al_KidSe пишет:
Здравствуйте, кодировщики

Здравствуй, юзверьойд

хах, смешно. Но не очень я юзверьойд, у меня стаж в php,css, jquery 3 года.
 
 Top
OrmaJever Модератор
Отправлено: 27 Августа, 2013 - 21:23:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Al_KidSe пишет:
Отображать, просто отображать. Как аксессуар, чтобы игроки ориентировались во времени там.

Можно взять точку отсчёта (записать в некий файл timestamp начала игровой эпохи) и затем отнимать текущий timestamp от начала и умножать это на 2, и дальше отдавать это число вторым параметром в функцию date(). Я не уверен что так будет корректное время, это просто мои мысли ;)


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Al_KidSe
Отправлено: 27 Августа, 2013 - 21:31:30
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




OrmaJever пишет:
Al_KidSe пишет:
Отображать, просто отображать. Как аксессуар, чтобы игроки ориентировались во времени там.

Можно взять точку отсчёта (записать в некий файл timestamp начала игровой эпохи) и затем отнимать текущий timestamp от начала и умножать это на 2, и дальше отдавать это число вторым параметром в функцию date(). Я не уверен что так будет корректное время, это просто мои мысли ;)

Блин, слишком умно как-то получилось. Но я попробую...Спасибо.
 
 Top
soleg
Отправлено: 27 Августа, 2013 - 21:33:46
Post Id


Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




OrmaJever пишет:
Можно взять точку отсчёта (записать в некий файл timestamp начала игровой эпохи)

Вычитать из текущего времени значение из этого файла
=> затем умножить его на 2
=> результат плюсуем ко времени полученного из файла
=> получаем нужную дату.
=> Передаём это значение клиенту,
=> на стороне клиента с помощью javascript и простого таймера с половинчатой секундой показываем пользователю "реальное" время.

(Отредактировано автором: 27 Августа, 2013 - 21:37:24)

 
 Top
OrmaJever Модератор
Отправлено: 27 Августа, 2013 - 21:41:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




soleg пишет:
=> результат плюсуем ко времени полученного из файла
нет, так будет не правильно.
Например начальная точка 8.20, через реальный час в игре будет 10.20, а по вашей формуле 9.20. Или я не так понял


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Al_KidSe
Отправлено: 27 Августа, 2013 - 21:43:44
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




soleg пишет:
OrmaJever пишет:
Можно взять точку отсчёта (записать в некий файл timestamp начала игровой эпохи)

Вычитать из текущего времени значение из этого файла
=> затем умножить его на 2
=> результат плюсуем ко времени полученного из файла
=> получаем нужную дату.
=> Передаём это значение клиенту,
=> на стороне клиента с помощью javascript и простого таймера с половинчатой секундой показываем пользователю "реальное" время.

Спасибо, большое. Реально, сработало.
 
 Top
soleg
Отправлено: 27 Августа, 2013 - 21:57:16
Post Id


Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




OrmaJever пишет:
soleg пишет:
=> результат плюсуем ко времени полученного из файла
нет, так будет не правильно.
Например начальная точка 8.20, через реальный час в игре будет 10.20, а по вашей формуле 9.20. Или я не так понял


PHP:
скопировать код в буфер обмена
  1. $time_fix = 1377542784; //фиксированное время начала
  2. $time_now = time(); // сейчас время
  3. $raznica = $time_now - $time_fix; // Получаем разницу между началом и данным временем
  4. $raznica_game = $raznica * 2; // ПОлучаем время которое прошло в игре с момента начала
  5. $game_time =  $time_fix + $raznica_game; // Время пройденное в игре плючуем к фикированной дате,т.е. к дате начала
  6.  
  7. echo "Время начала: ({$time_fix}) " . date("d-m-Y H:i:s", $time_fix).PHP_EOL;
  8. echo "Прошло в реальном времени : ({$raznica})" . PHP_EOL;
  9. echo "Прошло в игре времени : ({$raznica_game})" . PHP_EOL;
  10. echo "Время в игре: ({$game_time}) " . date("d-m-Y H:i:s", $game_time).PHP_EOL;
  11. die();


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Время начала: (1377542784) 26-08-2013 22:46:24
  3. Прошло в реальном времени : (86969)
  4. Прошло в игре времени : (173938)
  5. Время в игре: (1377716722) 28-08-2013 23:05:22
  6.  


Al_KidSe пишет:

Спасибо, большое. Реально, сработало.

Сарказм?
Ты ведь даже не вдумался в мою мысль. Даже если она не совсем верная, то возможно в процессе осознания её неточности, у тебя самого возникнет правильная идея для реализации.

(Отредактировано автором: 27 Августа, 2013 - 22:00:13)

 
 Top
Al_KidSe
Отправлено: 27 Августа, 2013 - 22:13:29
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




soleg пишет:

Сарказм?

Без сарказма. Реально помогло, уже и на AJAX сделал такие часы. Спасибо. У меня все вместилось в 3 строки
PHP:
скопировать код в буфер обмена
  1.  
  2. $tim=1377628855;
  3. $tim2=time()-$tim;
  4. $tim3=$tim2*4;
  5. echo date("H:i:s", $tim3);
  6.  
[/quote]

(Отредактировано автором: 27 Августа, 2013 - 22:16:37)

 
 Top
OrmaJever Модератор
Отправлено: 27 Августа, 2013 - 22:38:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




когда я читал этой строки
Al_KidSe пишет:
=> затем умножить его на 2

не было, поэтому и написал.
но всёравно тогда пункт
Al_KidSe пишет:
=> результат плюсуем ко времени полученного из файла

бесмыслен, т.к. нам нужно только время, а остаток никак не повлияет на него.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Al_KidSe
Отправлено: 28 Августа, 2013 - 10:23:41
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




OrmaJever пишет:
когда я читал этой строки
Al_KidSe пишет:
=> затем умножить его на 2

не было, поэтому и написал.
но всёравно тогда пункт
Al_KidSe пишет:
=> результат плюсуем ко времени полученного из файла

бесмыслен, т.к. нам нужно только время, а остаток никак не повлияет на него.

я тоже это упустил.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB