首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP ()返回一个时间戳,该时间戳比实时时间戳低59秒

PHP ()返回一个时间戳,该时间戳比实时时间戳低59秒
EN

Stack Overflow用户
提问于 2019-09-17 18:02:27
回答 2查看 131关注 0票数 0

我有一个开发环境和一个生产环境。函数在dev env中返回正确的时间戳,但在我的生产环境中,time()正好落后59秒!在这两个环境中,PHP的版本都是7.0.3。这不可能是时区问题,因为差别只有一分钟,PHP默认时区在两种环境中都是相同的(美国/洛杉矶)。现在是上午10:48:29,这是在两个环境中同时调用此函数的输出(或者至少在控制台上按enter键的速度)。

开发环境(正确)

代码语言:javascript
运行
复制
php > echo date('h:i:s A');
10:48:29 AM

生产环境(落后1分钟)

代码语言:javascript
运行
复制
echo date('h:i:s A');
10:47:31 AM

time()函数也是如此

开发环境(正确)

代码语言:javascript
运行
复制
php > echo time();
1568742851

生产环境(落后1分钟)

代码语言:javascript
运行
复制
echo time();
1568742792

1568742851 - 1568742792 = 59秒

我知道我只需在时间戳时间()返回中增加59秒,但这似乎是一个黑客,并不能解决问题。我想得到关于如何修复我的生产环境的建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-11 18:32:26

确认您正在允许NTP通信到生产操作系统环境。如果您收到一个ntpq -c peers提示符,您可以通过运行下面的命令Connection refused来确认您的服务器是否正确地与Connection refused通信。您需要配置一个入站防火墙规则,允许在端口123上进行UDP通信。完成后,重新启动NTP服务service ntpd restart并重新运行ntpq -c peers命令。

票数 2
EN

Stack Overflow用户

发布于 2019-10-16 08:11:11

我相信您的产品和开发机器上的系统时钟是不同步的,不管PHP或操作系统的版本如何,就像评论中提到的@g_bor一样。

不要被时区搞糊涂,只需在系统外壳上运行date +%s命令在两台机器上打印时间戳,如果没有权限(不能登录ssh),可以准备包含system('date +%s');system('date +%s');文件,然后上传到web服务器并打开浏览器检查两台机器上的时间戳。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57979743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档