出现以下错误的原因是什么?如何解决这个问题?
gmmktime(): You should be using the time() function instead
第90行中的问题:
89 date_default_timezone_set("GMT");
90 $time = gmmktime();
答案 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' )