Server Time w/momentjs
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.4.1/moment-timezone-with-data.min.js"></script>
<p>Server time: <span id="servertime">Loading...</span></p>
<p>Device time: <span id="devicetime">Loading...</span></p>
<p>Time offset: <span id="offsettime">Loading...</span> ms</p>
<hr/>
<p>Sweden time :: <span id="swedentime">Loading...</span></p>
<p>Finland time : <span id="finlandtime">Loading...</span></p>
<p>Japan time ::: <span id="japantime">Loading...</span></p>
<p>Dubai time ::: <span id="dubaitime">Loading...</span></p>
<p>New York time: <span id="newyorktime">Loading...</span></p>
<p>Eucla time ::: <span id="euclatime">Loading...</span></p>
<p>India time ::: <span id="euclatime">Loading...</span></p>
CSS
* { font-family: monospace; }
JavaScript
/*
External dependencies:
* http://momentjs.com/
* http://momentjs.com/timezone/
*/
(function() {
// Set the locale to use for time formatting. Try other
// options like 'sv' or 'fi' or 'fr'. 'en' == english
moment.locale('en');
var deviceTime,
serverTime,
actualTime,
timeOffset;
// Run each second lap to show times in real time
var updateDisplay = function() {
// Show static time data
document.getElementById('servertime').innerHTML =
serverTime.format();
document.getElementById('devicetime').innerHTML =
deviceTime.format();
document.getElementById('offsettime').innerHTML =
timeOffset;
// Show dynamic time data
var displayFormat = 'LL LTS';
document.getElementById('swedentime').innerHTML =
actualTime.tz('Europe/Stockholm').format(displayFormat);
document.getElementById('finlandtime').innerHTML =
actualTime.tz('Europe/Helsinki').format(displayFormat);
document.getElementById('japantime').innerHTML =
actualTime.tz('Asia/Tokyo').format(displayFormat);
document.getElementById('dubaitime').innerHTML =
actualTime.tz('Asia/Dubai').format(displayFormat);
document.getElementById('newyorktime').innerHTML =
actualTime.tz('America/New_York').format(displayFormat);
document.getElementById('euclatime').innerHTML =
actualTime.tz('Australia/Eucla').format(displayFormat);
};
var timerHandler = function() {
// Get current time on the device
actualTime = moment();
// Add the calculated offset
actualTime.add(timeOffset);
// Show our new results
updateDisplay();
// Re-run this next second wrap
setTimeout(timerHandler, (1000 - (new Date().getTime() % 1000)));
};
// Fetch the servern time through a HEAD request to...