MediaWiki魔术字CURRENTMONTH与CURRENTDAY2为何显示未来日期?
问题分析与解决方案
问题根源
你使用的{{CURRENTYEAR}}、{{CURRENTMONTH}}、{{CURRENTDAY2}}这类魔术变量,本质是基于服务器UTC时间生成的——哪怕你在LocalSettings.php里配置了$wgLocaltimezone,这些变量依然不会读取时区设置,只会输出UTC标准下的日期时间。临近午夜时,UTC时间可能已经进入下一天,就会出现本地日期还是31号,但变量输出1号的情况。
解决办法
换成基于时区的LOCAL系列魔术变量,这类变量会遵循$wgLocaltimezone的配置(或登录用户自行设置的时区)生成对应时区的日期:
修改后的输入框代码:
<inputbox> type=create default=Blog: {{LOCALYEAR}}-{{LOCALMONTH}}-{{LOCALDAY2}} buttonlabel=Create post </inputbox>
额外验证
如果是登录用户使用,确保用户账户的时区设置与本地一致;匿名用户会自动沿用$wgLocaltimezone的配置,无需额外操作。
内容的提问来源于stack exchange,提问作者Razzi Abuissa
相关产品推荐
相关产品推荐

