以下错误的原因是什么?如何解决问题?
gmmktime(): You should be using the time() function instead
第 90 行中的问题:
89 date_default_timezone_set("GMT");
90 $time = gmmktime();
gmmktime()在内部使用mktime(),它在不带参数调用时会抛出 E_STRICT 通知,因此请改用time()函数。
这是来自php.net的评论
gmmktime() 只能用于在指定特定的 GMT 日期和时间时创建时间戳。
如果要为当前日期和时间制作有效的时间戳,请改用 mktime()。
根据定义,UNIX 时间戳存储相对于 UNIX 纪元的 GMT 时间。
gmmktime()(没有指定任何参数)将有效地使用计算机的本地时间值,就像它们是显式参数一样,并且生成的时间戳将不正确。(生成的时间戳实际上将在本地时区偏移 GMT 的相反方向上偏移!)
所以它需要输入。您应该将此函数视为一种转换机制,而不是格式化数据的来源。
我怀疑你的主机可能已经更新了 php.ini。
如果您要求您的主机提供商编辑您的 php.ini 文件,以禁用在 php.ini 中记录 STRICT 警告,您可能会被排序。
同样根据php.net
gmmktime()
内部使用mktime()
,因此只能使用在派生本地时间有效的时间。
还要检查那里的更改日志,它说
自 PHP 5.1.0 起,该is_dst
参数已弃用。因此,应该使用新的时区处理功能。
问题是需要输入gmmktime()
,mktime()
即它们需要年、月、日等并给出时间戳。如果您只想要当前时间戳,请使用该time()
功能。
这适用于此目的:gmdate( 'U' )