4

以下错误的原因是什么?如何解决问题?

gmmktime(): You should be using the time() function instead

第 90 行中的问题:

 89         date_default_timezone_set("GMT");
 90         $time = gmmktime();
4

5 回答 5

5

gmmktime()在内部使用mktime(),它在不带参数调用时会抛出 E_STRICT 通知,因此请改用time()函数。

于 2013-09-24T06:24:42.613 回答
4

这是来自php.net的评论

gmmktime() 只能用于在指定特定的 GMT 日期和时间时创建时间戳。

如果要为当前日期和时间制作有效的时间戳,请改用 mktime()。

根据定义,UNIX 时间戳存储相对于 UNIX 纪元的 GMT 时间。

gmmktime()(没有指定任何参数)将有效地使用计算机的本地时间值,就像它们是显式参数一样,并且生成的时间戳将不正确。(生成的时间戳实际上将在本地时区偏移 GMT 的相反方向上偏移!)

所以它需要输入。您应该将此函数视为一种转换机制,而不是格式化数据的来源。

于 2013-09-24T06:24:32.710 回答
2

我怀疑你的主机可能已经更新了 php.ini。

如果您要求您的主机提供商编辑您的 php.ini 文件,以禁用在 php.ini 中记录 STRICT 警告,您可能会被排序。

同样根据php.net gmmktime()内部使用mktime(),因此只能使用在派生本地时间有效的时间。

还要检查那里的更改日志,它说

自 PHP 5.1.0 起,该is_dst参数已弃用。因此,应该使用新的时区处理功能。

于 2013-09-24T06:30:04.873 回答
0

问题是需要输入gmmktime()mktime()即它们需要年、月、日等并给出时间戳。如果您只想要当前时间戳,请使用该time()功能。

于 2013-09-24T06:24:23.557 回答
0

这适用于此目的:gmdate( 'U' )

于 2020-06-24T15:38:25.643 回答