我使用的脚本将地球时间转换为游戏中的游戏时间(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();