使用php获得精准可靠的GMT时间
时间:2009-05-29
来源:互联网
本帖最后由 gently 于 2009-5-29 10:26 编辑
有一种情形是这样子的,比如机票业务中的订票流程,我们需要一个非常可靠的当前时间来支持,尽管大多数服务器的时间是非常准确的,我们使用time()来获取的时间是可靠的,但未免会有不确切的情况,也有的服务器由于未开启ntp(Network Time Protocol)来进行时间同步,再由于硬件环境等因素,导致时间五花八门,这在通常,也就差个几分钟、最多几个小时的情况是无可厚非的,因为在同一个网站使用的是同一个时间,可是有的时候这样很糟糕。在internet上,有免费专门提供UTC时间校正的授时服务器,使用NTP协议,这个可以参考前面的链接来获取更多知识。他提供的时间误差在20ms左右(不要说在数据传输过程中会耗费的时间不等,NTP早就考虑到了这一点),因此通过这种授时服务器,我们就能得非常可信的当前时间。
比如我的电脑中安装的这个原子时钟,它就具有自动同步时间的功能,因此,我的电脑时间是很可信的。实际上,windows和linux等系统都支持通过NTP协议自动同步时间。
我们现在就来看看用PHP怎么获取到非常精准的UTC时间,由于NTP协议稍微有一点点的不好用,我们有一个更好的协议可以用,他就是Daytime Protocol协议,通过这个协议我们可以直接得到文本数据,这样处理起来会更加方便。我们使用time.nist.gov的时间服务,代码非常简单,用TCP连接它的13端口就可以了。[code]$fp=fsockopen('time.nist.gov',13,$errno,$errstr,90);
echo fread($fp,2096);[/code]获得到的数据类似于这样的:
OK了,用PHP实现获得准确的UTC时间,这个应用在对时间要求非常苛刻的场合还是很有价值的,到此,我的问题也算解决了。
本文最初发表在我的博客:http://www.zendstudio.net/archiv ... time-server-by-php/,转载注明出处,谢谢合作。
有一种情形是这样子的,比如机票业务中的订票流程,我们需要一个非常可靠的当前时间来支持,尽管大多数服务器的时间是非常准确的,我们使用time()来获取的时间是可靠的,但未免会有不确切的情况,也有的服务器由于未开启ntp(Network Time Protocol)来进行时间同步,再由于硬件环境等因素,导致时间五花八门,这在通常,也就差个几分钟、最多几个小时的情况是无可厚非的,因为在同一个网站使用的是同一个时间,可是有的时候这样很糟糕。在internet上,有免费专门提供UTC时间校正的授时服务器,使用NTP协议,这个可以参考前面的链接来获取更多知识。他提供的时间误差在20ms左右(不要说在数据传输过程中会耗费的时间不等,NTP早就考虑到了这一点),因此通过这种授时服务器,我们就能得非常可信的当前时间。
比如我的电脑中安装的这个原子时钟,它就具有自动同步时间的功能,因此,我的电脑时间是很可信的。实际上,windows和linux等系统都支持通过NTP协议自动同步时间。
我们现在就来看看用PHP怎么获取到非常精准的UTC时间,由于NTP协议稍微有一点点的不好用,我们有一个更好的协议可以用,他就是Daytime Protocol协议,通过这个协议我们可以直接得到文本数据,这样处理起来会更加方便。我们使用time.nist.gov的时间服务,代码非常简单,用TCP连接它的13端口就可以了。[code]$fp=fsockopen('time.nist.gov',13,$errno,$errstr,90);
echo fread($fp,2096);[/code]获得到的数据类似于这样的:
54979 09-05-28 09:10:50 50 0 0 206.9 UTC(NIST) *
这个串的每个部分都有意义,具体的请参看:http://tf.nist.gov/service/its.htm,现在我们只关心中间的部分和206.9前面的那个0,它表示服务器的健康状况,也反映当前的时间是否可信。OK了,用PHP实现获得准确的UTC时间,这个应用在对时间要求非常苛刻的场合还是很有价值的,到此,我的问题也算解决了。
本文最初发表在我的博客:http://www.zendstudio.net/archiv ... time-server-by-php/,转载注明出处,谢谢合作。
作者: gently 发布时间: 2009-05-29
up
作者: qingxuan812 发布时间: 2009-05-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28