Javascript 如何从客户端时间计算服务器时间

Javascript 如何从客户端时间计算服务器时间,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我有很多动态内容的网页,服务器时间只加载一次 用户在网页上停留很长时间,做很多与时间相关的活动。 这些活动我需要使用服务器的datetime(time)登录浏览器localstorage 那么,在不向服务器发出新请求的情况下,如何从相对客户端时间计算、查找或获取服务器时间呢 任何建议,请提前感谢 这是绝对不可能的。如果在客户端发生了一些事情,而您没有向服务器发出请求,那么服务器将无法知道这一点 但是,如果您只是表示不希望重新加载页面,那么可以使用AJAX向服务器发送异步(后台)请求,而用户不知道

我有很多动态内容的网页,服务器时间只加载一次

用户在网页上停留很长时间,做很多与时间相关的活动。 这些活动我需要使用服务器的datetime(time)登录浏览器localstorage

那么,在不向服务器发出新请求的情况下,如何从相对客户端时间计算、查找或获取服务器时间呢


任何建议,请提前感谢

这是绝对不可能的。如果在客户端发生了一些事情,而您没有向服务器发出请求,那么服务器将无法知道这一点

但是,如果您只是表示不希望重新加载页面,那么可以使用AJAX向服务器发送异步(后台)请求,而用户不知道这一点


您可以从
time.now
time.new
获取当前时间。时间对象组件可以在客户端Javascript上使用,以节省客户端系统上的时间

#!/usr/bin/ruby -w

time = Time.new
# time = Time.now # => Also can be used
puts time.strftime("%Y,%m,%d,%H,%M,%S,%2N") # => "2014,03,06,02,41,29,85"
在JS中,日期对象可以用不同的方式初始化,例如:

  • 新日期(毫秒)//自1970/01/01以来的毫秒
  • 新日期(日期字符串)
  • 新日期(年、月、日、时、分、秒、毫秒)
  • 这里可以使用第三种方法。在rails模板文件中使用以下代码

    var currentDate = new Date(<%= Time.now.strftime('%Y,%m,%d,%H,%M,%S,%2N') %>);
    alert(currentDate.toString()); 
    
    var currentDate=新日期();
    警报(currentDate.toString());
    
    我使用以下方法从客户端时间获取服务器时间

  • 取第一次加载页面时客户端时间和服务器时间的差值

    var TIMEDIFF = new Date().getTime()-parseInt('<%= Time.now.to_i%>')*1000;
    
  • new Date().getTime()-TIMEDIFF