除了用户设备之外,我如何提取javascript时间

时间:2017-06-29 16:04:50

标签: javascript time

我使用的脚本将地球时间转换为游戏中的游戏时间(Eorzea Time)。最初编写的脚本是here

我的问题是,这会从用户的设备时钟中拉出地球时间。因此,如果他们的设备上的时钟不正确,转换为Eorzea的时间就不准确了。

我想从保证准确的时钟中拉出地球时间。我一直无法弄清楚如何做到这一点。

举个例子。如果您在本网站(www.ffxivclock.com)旁边查看此脚本并将时间改为一两分钟......那么当ffxivclock.com时间仍然正确时,jsfiddle时钟将会关闭。

var E_TIME = 20.5714285714;
var global = {
    utcTime: null,
    eorzeaTime: null
};
window.setInterval(updateClock, Math.floor(1000 * 60 /  E_TIME));

function updateClock() {
    global.utcTime = new Date().getTime();
    var eo_timestamp = Math.floor(global.utcTime * E_TIME);
    global.eorzeaTime = new Date();
    global.eorzeaTime.setTime(eo_timestamp);
    showTime();
}

function showTime() {
    var d = new Date();
    d.setTime(global.eorzeaTime);
    var eTime = document.getElementById('e-time');
    var hours = d.getUTCHours();
    var ampm = hours > 11 ? "PM" : "AM";
    if(hours > 12)
    hours -= 12;
    hours = padLeft(hours);
    var minutes = d.getUTCMinutes();
    minutes = padLeft(minutes);
    eTime.innerHTML = hours + ":" + minutes + " " + ampm;
}
function padLeft(val){
    var str = "" + val;
    var pad = "00";
    return pad.substring(0, pad.length - str.length) + str;
}
updateClock();

0 个答案:

没有答案