Я вижу людей, которые хранят/получают время и время сервера относительно него с использованием даты или getTime, которые могут храниться в базе данных в виде строки из следующих ролей: «21 июля 1983 года 01:15:00».Как сохранить время сервера?
До сих пор я сохранял время своего сервера как разницу между NOW и 1 января 2013 года. Это вернет числовое значение (в минутах), округленное до 1 января 2013 года и прямо сейчас, которое я сохраняю как время внутреннего сервера ,
Достоинствами этого являются: - запрос на сервер подразумевает простое числовое сравнение, в то время как (я делаю обоснованное предположение), сравнивая две даты, подразумевающие внутреннее преобразование в объекты и использование операций сравнения жира. - сохранение количества этого размера более легкое, чем строка ~ 25 символов. - возврат к «реальному» времени - добавление 1 января 2013 года, но второе и миллисекунда значения теряются из-за начальной округлости.
Но все же другие программисты-программисты настаивают на том, что использование строки версии - легко читается как человек. - его универсальный формат для большинства языков (особенно nodejs, mongodb и as3, который имеет этот проект).
Я не уверен, что лучше для крупномасштабных баз данных и, в частности, для многопользовательской игры на основе сокетов. Я уверен, что другие, имеющие реальный опыт в этом, могут пролить свет на мою проблему.
Итак, что лучше и почему?
хранить их в формате UTC, а также и сделать ваше приложение TZ известно, что путь у вас есть истинная интернационализация. Я бы действительно поспорил с программистами, с которыми вы разговаривали ... база данных хранит данные, которые не должны быть читаемыми человеком, поэтому вы делаете приложения – Sammaye
Так почему бы не сохранить их как разницу между 1 января 2013 года? Таким образом, обе даты находятся в одном и том же часовом поясе. На самом деле все различия между этими датами времени. – Discipol
@Discipol Если вы храните их как int, и они будут в будущем доказательством, нет ничего против этой части, любая другая дата, которая требует большего разрешения, должна быть объектом datetime, хотя строковые даты - это смертельный звон, поэтому многие системы, которые я принял которые совершили эти ошибки ... – Sammaye