Small utility to convert times between GPS epoch (midnight January 6, 1980) and Unix epoch (midnight January 1, 1970), taking into account leap seconds.
It's not such a trivial matter as adding a constant number of leap seconds to all time inputs! For any two times, a different number of leap seconds may have elapsed between them. This utility helps figure out exactly how many have elapsed.
No dependencies! Very small: 464 bytes gzipped.
Works on the client and on the server (in Node.js).
npm i --save gps-time
AMD and CommonJS are supported, with a fallback that defines this utility at window.gpsTime
In Node, you can bring in this utility with this:
var gpsTime = require('gps-time');
var unixMS = Date.now(); // 1454168480000
gpsTime.toGPSMS(unixMS); // 1138203697000
var gpsMS = 1138203697000;
gpsTime.toUnixMS(gpsMS); // 1454168480000
This comes with a small test suite which can be run like this:
$ npm install --dev
$ npm test