如何使用JavaScript获取服务器日期?
我正在使用AngularJS客户端应用程序,处理日期和时间。我的问题是任何人都可以更改本地系统日期,为了保护这一点,我想使用服务器日期,而不需要任何get或post请求。有没有办法使用JavaScript获取服务器日期 如果在客户端运行JavaScript,查找服务器时间的唯一方法是询问服务器当前时间是多少。这里没有魔法。您需要向服务器发出请求 选项:如何使用JavaScript获取服务器日期?,javascript,angularjs,Javascript,Angularjs,我正在使用AngularJS客户端应用程序,处理日期和时间。我的问题是任何人都可以更改本地系统日期,为了保护这一点,我想使用服务器日期,而不需要任何get或post请求。有没有办法使用JavaScript获取服务器日期 如果在客户端运行JavaScript,查找服务器时间的唯一方法是询问服务器当前时间是多少。这里没有魔法。您需要向服务器发出请求 选项: 使用或 如果HTML页面在服务器中呈现,则可以在页面呈现期间写入当前时间并将其发送给客户端 请注意,由于网络延迟,服务器的时间不可能精确,但您可
等待JavaScript是客户端语言。您将需要“请求”服务器端获取时间。请注意,连接和加载时间可能会影响所获得时间的准确性。您将需要额外的ajax请求。。。。加载可能会影响时间的准确性……使用ajax post req是否可能?请记住,即使您成功地从服务器获取日期,恶意客户端仍可能更改日期。如果准确的日期对系统至关重要,则必须在服务器端进行验证。“为了保护这一点,我希望使用服务器日期,而无需任何get或post请求“哈,什么?@epascarello这只是一个AJAX电话。jQuery可能在IE内部实现了这一点。信不信由你,仍然有一些组织的架构神不允许jQuery或任何其他开源。*叹息*@epascarello,我已经更新了答案,删除了旧的ActiveX引用。OP特别声明“没有任何get或post请求”。你是不是因为做了完全相反的事而期待着荣誉?
var offset = 0;
function calcOffset() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "https://stackoverflow.com/", false);
xmlhttp.send();
var dateStr = xmlhttp.getResponseHeader('Date');
var serverTimeMillisGMT = Date.parse(new Date(Date.parse(dateStr)).toUTCString());
var localMillisUTC = Date.parse(new Date().toUTCString());
offset = serverTimeMillisGMT - localMillisUTC;
}
function getServerTime() {
var date = new Date();
date.setTime(date.getTime() + offset);
return date;
}