gmmktime():您应该使用time()函数

时间:2013-09-24 06:18:54

标签: php time

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

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

第90行中的问题:

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

5 个答案:

答案 0 :(得分:5)

gmmktime()内部使用mktime(),在没有参数的情况下调用时会抛出E_STRICT通知,因此请改用time()函数。

答案 1 :(得分:4)

这是来自php.net

的评论
  

gmmktime()只应在指定a时用于创建时间戳   具体的GMT日期和时间。

     

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

     

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

     

gmmktime()(未指定任何参数)将有效使用   计算机的LOCAL时间值与它们是明确的相同   参数,结果时间戳将不正确。 (该   结果时间戳实际上将在OPPOSITE方向上偏移   当地时区偏离GMT!)

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

答案 2 :(得分:2)

我怀疑你的主人可能已经更新了php。

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

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

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

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

答案 3 :(得分:0)

问题是gmmktime()mktime()需要输入,即它们需要年,月,日等,并提供时间戳。如果您只想使用当前时间戳,请使用time()函数。

答案 4 :(得分:0)

这可以正常工作:gmdate( 'U' )