Chrome использует измененную форму формата времени Windows (« Windows epoch ») для своих временных меток, как в файле Bookmarks
, так и в файлах истории. Формат времени Windows - это число 100 нс с 1 января 1601 года. Формат Chrome - это количество микросекунд с той же даты и, следовательно, 1/10 таких же размеров.
Чтобы преобразовать временную метку Chrome в эпоху Unix и из нее, вы должны преобразовать ее в секунды и компенсировать разницу между двумя базовыми датами (11644473600).
Вот формулы преобразования для Unix, JavaScript (Unix в миллисекундах), Windows, и временные метки Chrome (вы можете изменить +/× и -/÷, но вы потеряете немного точности):
u : Unix timestamp eg: 1378615325
j : JavaScript timestamp eg: 1378615325177
c : Chrome timestamp eg: 13902597987770000
w : Windows timestamp eg: 139025979877700000
u = (j/1000)
u = (c - 116444736000000) /10000000
u = (w - 1164447360000000)/100000000
j = (u * 1000)
j = (c - 116444736000000) /10000
j = (w - 1164447360000000)/100000
c = (u * 10000000) + 116444736000000
c = (j * 10000) + 116444736000000
c = (w/10)
w = (u * 100000000) + 1164447360000000
w = (j * 100000) + 1164447360000000
w = (c * 10)
Обратите внимание, что это довольно большие цифры, поэтому вам нужно будет использовать 64-битные номера или же обрабатывать их как строки, подобные PHP-модулю BC-math.
@Lothar Это тавтологическое заявление? – Schwern
Нет, пришло время с 1 января 1970 года в _micro_ seconds – mgkrebbs
@mgkrebbs Вы правы! Исправлена. Скажи привет Доби! – Schwern