PHP日期解析



我有一个别人写的自定义Moodle插件。用户在插件中输入一个日期,该日期将被记录在学习活动中。

最初我有一个问题,插件会错误的一些日期和混淆AU(英国)日期格式和美国日期格式。我从这里使用解决方案修复了这个问题(如何使strtotime解析日期在澳大利亚(即英国)格式:dd/mm/yyyy?)。

但是现在一个奇怪的错误时不时地弹出,某些日期(特别是2015年7月2日)得到它的调换。所以02-07-2015被记录为15-07-2002

这似乎不是AU/US日期的事情,因为它应该只是翻转日期和月份,而不是。而且,它只会在特定的日期发生。01-07-201503-07-2015工作良好

更令人沮丧的是,我不能在我们的登台服务器上复制这个。这个问题只发生在我们的生产服务器上,即使它们都运行相同的代码和相同版本的Moodle。

我可以分享的代码是我是如何处理日期的,这是…

$date[$i] = strtotime(str_replace('/', '-', $date[$i]));

这让我想知道是否有一些PHP设置可能会导致这种情况。还是有什么我没注意到的?

仅供参考,生产服务器是由付费主机提供商维护的,我没有访问php.ini文件的权限(但我可以访问临时服务器)。

有人遇到这样的问题吗?或者你能建议我从哪里开始找问题吗?

尝试像下面这样调整日期函数的格式,以代替使用str_replace

if $dat = '2015-07-17';
$date= date('d-m-Y', strtotime($dat));

$date= date('d:m:Y', strtotime($dat));

$date= date('d/m/Y', strtotime($dat));

$date= date('m-d-Y', strtotime($dat));

相关内容

  • 没有找到相关文章

最新更新