Php 如何获取服务器时间并每秒更新?
我向特定服务器发出ajax请求,并获得响应。我正在使用jsonp进行跨域请求。是否有方法获取我发出请求的服务器时间。编写Php 如何获取服务器时间并每秒更新?,php,javascript,jquery,ajax,date,Php,Javascript,Jquery,Ajax,Date,我向特定服务器发出ajax请求,并获得响应。我正在使用jsonp进行跨域请求。是否有方法获取我发出请求的服务器时间。编写php脚本会更好,还是只做ajax请求就好。假设我提出以下请求: $.ajax({ dataType: 'jsonp', data: 'jsonp=date', jsonp: 'jsonp_callback', url: 'http://www.google.com',
php脚本
会更好,还是只做ajax请求就好。假设我提出以下请求:
$.ajax({
dataType: 'jsonp',
data: 'jsonp=date',
jsonp: 'jsonp_callback',
url: 'http://www.google.com',
success: function (data) {
}
});
如何从该请求中获取服务器时间?如果有任何建议,请帮忙。另外,在获得时间后,如果我使用
setInterval
方法每秒更新一次时间,那么在特定的时间更新时间之后发出相同的ajax请求会是一个代价高昂的操作还是更好的操作。我有实时数据要随时间更新。第1部分的答案是,您需要在响应中输出服务器时间,以便javascript读取它。对于第2部分,我将等待加载响应,然后使用setTimeout
。使用setInterval
意味着您可能会在第一个响应返回之前触发两次ajax调用。第1部分的答案是,您需要在响应中输出服务器时间,以便javascript读取它。对于第2部分,我将等待加载响应,然后使用setTimeout
。使用setInterval
意味着您可能会在第一个响应返回之前触发两次ajax调用。如果服务器没有明确地向您提供时间,您将无法获取服务器的时间。您可以读取它的HTTP头,但这不是一件好事,因为头可能不是每次都提供此信息,或者它们的格式可能不是一直相同 而且,我不认为每秒钟都问这个问题有什么意义。
问它一次,计算它的时间和你的时间之间的差异,你就得到了:你得到了时间的差异,你可以在任何你想要的地方使用它
请记住,即使您获得了时间,由于网络的延迟,您获得的时间与服务器的实时时间之间也可能存在差异 如果服务器没有明确提供给您,则无法获取服务器的时间。
您可以读取它的HTTP头,但这不是一件好事,因为头可能不是每次都提供此信息,或者它们的格式可能不是一直相同 而且,我不认为每秒钟都问这个问题有什么意义。
问它一次,计算它的时间和你的时间之间的差异,你就得到了:你得到了时间的差异,你可以在任何你想要的地方使用它
请记住,即使您获得了时间,由于网络的延迟,您获得的时间与服务器的实时时间之间也可能存在差异 当您建议服务器时间时,您是指执行调用的脚本还是服务器上的实际时间 这样做的必要性是什么?例如,您是否试图计算通话间隔时间,以便每5秒自动拨打一次电话 如果您只是简单地从javascript获取一个区域设置时间,并在ajax中获得响应时比较它就足够了
否则,由于javascript的“客户端”特性,它将无法获得服务器时间。当您建议使用服务器时间时,您是指执行调用的脚本还是服务器上的实际时间 这样做的必要性是什么?例如,您是否试图计算通话间隔时间,以便每5秒自动拨打一次电话 如果您只是简单地从javascript获取一个区域设置时间,并在ajax中获得响应时比较它就足够了
否则,由于javascript的“客户端”特性,它将无法获取服务器时间。我请求的服务器当前使用UTC时间。所以我想花点时间,然后根据客户端的时区进行转换。由于没有使用XHR对象,jsonp上没有可用的TTP头。@JonathanM感谢您指出这一点。请随意编辑我的答案。:)@萨米,不需要编辑。关于一次获取时间和考虑延迟的好答案。@user850234如果您已经知道服务器时区,只需使用PHP将您的本地日期转换为该时区时间!我请求的服务器当前使用UTC时间。所以我想花点时间,然后根据客户端的时区进行转换。由于没有使用XHR对象,jsonp上没有可用的TTP头。@JonathanM感谢您指出这一点。请随意编辑我的答案。:)@萨米,不需要编辑。关于一次获取时间和考虑延迟的好答案。@user850234如果您已经知道服务器时区,只需使用PHP将您的本地日期转换为该时区时间!