Работа с временными зонами

Тема в разделе "Веб-технологии", создана пользователем ₮αй₮оβый, 4 мар 2016.

  1. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    Есть плагин, который отправляет инфу в базу данных, инфа связанна со временем, потом эта инфа идет на web, проблема в том, что время пишет 11:18:16, на часах по МСК 14:18:16, Сам вопрос, как мне указать МСК время, где и что прописывать (в плагине, в базе или в web части) пробовал в web части, добавить варианты из интернета эффекта ноль
     
  2. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    cfg/sourcemod/sourcemod.cfg
    Код:
    sm_time_adjustment 10800
     
    ₮αй₮оβый нравится это.
  3. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    Не помогло(
     
    Последнее редактирование: 4 мар 2016
  4. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, странно. Переменная sm_time_adjustment точно изменилась? Что выводит эта команда:
    PHP:
    sm_cvar sm_time_adjustment
     
  5. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    [SM] Value of cvar "sm_time_adjustment": "10800"
     
  6. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
  7. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    это тот плагин который ты мне делал)
     
  8. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, я не смотрел что я делаю. >.<
    Тогда понятно в принципе.
    --- Добавлено позже ---
    @₮αй₮оβый, строку:
    PHP:
    Format querysizeofquery ), "INSERT IGNORE INTO `players_time` ( `steamid`, `nick`, `ip`, `first`, `last`, `time`, `type` ) VALUES ( '%s', '%s', '%s', UNIX_TIMESTAMP(NOW()), UNIX_TIMESTAMP(NOW()), %d, %d ) ON DUPLICATE KEY UPDATE `time` = `time` + %d, `last` = UNIX_TIMESTAMP(NOW())",
        
    arr_steamid client ], arr_nick client ], arr_ip client ], arr_time client ], ( GetUserAdmin(client) != INVALID_ADMIN_ID ) ? 0arr_time client ] );
    Замените на:
    PHP:
    Format querysizeofquery ), "INSERT IGNORE INTO `players_time` ( `steamid`, `nick`, `ip`, `first`, `last`, `time`, `type` ) VALUES ( '%s', '%s', '%s', %d, %d, %d, %d ) ON DUPLICATE KEY UPDATE `time` = `time` + %d, `last` = UNIX_TIMESTAMP(NOW())",
        
    arr_steamid client ], arr_nick client ], arr_ip client ], GetTime ( ), GetTime ( ), arr_time client ], ( GetUserAdmin(client) != INVALID_ADMIN_ID ) ? 0arr_time client ] );
    Это позволит менять время через sm_time_adjustment.
    Я там косяки плагина оставил просто, сделал всё как есть с небольшими изменениями.
     
    ₮αй₮оβый нравится это.
  9. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    Разница в 20 минут с реальным временем, и почему-то дублируются игроки в базе
     
  10. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, разница редактируется переменной sm_time_adjustment, в секундах.
    Можете прислать дамп базы чтобы дубли посмотреть?
     
  11. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    Пришлось поменять формат файла
     

    Вложения:

  12. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, понял проблему. База ищет уникальных пользователей по нику, а не Steam ID. Этот косяк из sma ещё.
    Для решения проблемы:
    1. Смените индекс authid с nick на steamid. Перед этим нужно очистить базу, если там повторы есть.
    Вот SQL запрос, чтобы всё разом сделать:
    PHP:
    TRUNCATE TABLE `players_time`;
    ALTER TABLE `players_time`
       
    DROP INDEX `authid`,
       
    ADD UNIQUE KEY `authid` (`steamid`)
    2. Не обязательно, но если в будущем плагин прилеплять к другой базе будете, то измените в плагине строчку:
    PHP:
            UNIQUE KEY `authid` (`nick`)\
    На строчку:
    PHP:
            UNIQUE KEY `authid` (`steamid`)\
     
    ₮αй₮оβый нравится это.
  13. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    Спасибо, а можно как-нито добавить функцию, игрок на сервере пишет команду например !active и ему бы водилась инфа из базы?
     
  14. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, наверно можно как нить. Но я SQL совсем не понимаю.
     
  15. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    Ясн, все-равно спасибо, попробую вытащит данную функцию из другого плагина)
     
  16. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, если хочешь - можешь оплатить мне интернет и я сам всё найду как сделать и сделаю. :)
    Просто сижу с телефона, где кстати тоже баланс на 0. Ничего, кроме HLmod у меня по какой то причине не грузится. И то жутко медленно. >.<
     
  17. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    А много надо?
     
  18. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
  19. ₮αй₮оβый

    ₮αй₮оβый

    Сообщения:
    280
    Симпатии:
    10
    к сожалению в данный момент такой суммой не владею(
     
  20. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    @₮αй₮оβый, ыыы, а мне просто лень до банкомата идти. :D
    Тогда только после праздников. :)
     
    Последнее редактирование: 6 мар 2016