php 中的 time() 函数表示当前时间是 1970
Posted
技术标签:
【中文标题】php 中的 time() 函数表示当前时间是 1970【英文标题】:time() function in php says current time is 1970 【发布时间】:2017-02-05 23:40:05 【问题描述】:我在 mac 上运行 XAMPP。
我有一个非常简单的脚本:
<?php
echo time();
总是返回 1970 年的时间。
示例:1475044574(编辑:1475137157)
我尝试在 php.ini 中设置时区,然后调用 date_default_timezone_get() 并返回正确的设置值。
我尝试将 SetEnv TZ MyTimezone 添加到 httpd.conf(位于文件底部),但没有成功。
我也尝试使用 date_default_timezone_set() 在 php 中设置时区,虽然设置成功,但时间仍然是 1970 年。
我在 MAMP 上尝试了相同的脚本,但仍然是同样的问题。
欢迎提出任何建议!
【问题讨论】:
但您的示例 (1475044574) 是 2016 年 9 月 28 日星期三 06:36:14 GMT 1970年的时间永远不会是1475044574
是什么让您认为时间是在 1970 年?提示,不是
最可能的问题是您在尝试将 unixtimestamp 转换为实际日期时出错。
【参考方案1】:
时间函数正在返回正确的 unix 时间戳,您在将时间转换为正确格式时犯了错误。 1475044574 表示 2016 年 9 月 28 日星期三 06:36:14 GMT,这是正确的。
您可以根据需要转换时间。参考date formats。
检查此示例代码:
回显日期('M j Y g:i A', 1475044574);
兄弟,根据 PHP 手册 php.net/manual/en/function.time.php time() 函数返回秒而不是毫秒。请在本网站 epochconverter.com 上检查您的时间戳。
【讨论】:
等等,这很奇怪。前两天我在测试脚本,并在 currentmillis.com 上转换时间。时间总是在 1970 年。我最后一次运行脚本,将问题的时间复制到这里,没有检查。突然是正确的日期? 兄弟,根据 PHP 手册 php.net/manual/en/function.time.phptime() 函数返回秒而不是毫秒。请检查您在本网站上的时间戳epochconverter.com。 哦,这很尴尬。在过去的两天里,我多次阅读此功能的文档,但从未注意到这一点。您可以将其发布为答案吗? brainiac,我已经编辑了我的答案,您可以将其标记为答案。谢谢,快乐编码。【参考方案2】:time()
函数returns current Unix timestamp
。所以,你的 1475044574
是一个时间戳。
使用date
函数可以看到这是一个时间戳(某些时区的变化,结果可能会有所不同):
echo date('Y-m-d H:i:s', 1475044574);
// 2016-09-28 02:36:14
如果您将此时间戳转换为某种字符串表示形式并得到类似 00-00-1970
的内容 - 您显然进行了转换错误。
【讨论】:
以上是关于php 中的 time() 函数表示当前时间是 1970的主要内容,如果未能解决你的问题,请参考以下文章