Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP日期解析_Php_Date_Datetime - Fatal编程技术网

PHP日期解析

PHP日期解析,php,date,datetime,Php,Date,Datetime,我有一个其他人编写的自定义Moodle插件。用户在插件中输入日期,并根据学习活动记录该日期 最初,我遇到了一个问题,插件会把一些日期弄错,并混淆了AU(英国)日期格式和US日期格式。我使用此处的解决方案()修复了该问题 但现在,在某些日期(尤其是2015年7月2日)被转换为年份和日期的地方,不时会出现一个奇怪的错误。因此02-07-2015被记录为15-07-2002 这似乎不是一个AU vrs US日期的事情,因为它应该只是翻转日期和月份,而不是年份。而且,它只发生在特定的日期01-07-20

我有一个其他人编写的自定义Moodle插件。用户在插件中输入日期,并根据学习活动记录该日期

最初,我遇到了一个问题,插件会把一些日期弄错,并混淆了AU(英国)日期格式和US日期格式。我使用此处的解决方案()修复了该问题

但现在,在某些日期(尤其是2015年7月2日)被转换为年份和日期的地方,不时会出现一个奇怪的错误。因此
02-07-2015
被记录为
15-07-2002

这似乎不是一个AU vrs US日期的事情,因为它应该只是翻转日期和月份,而不是年份。而且,它只发生在特定的日期<代码>01-07-2015和
03-07-2015
工作正常

更令人沮丧的是,我无法在我们的登台服务器上重现这一点。问题只发生在我们的生产服务器上,即使它们都运行相同的代码和相同版本的Moodle

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

$date[$i] = strtotime(str_replace('/', '-', $date[$i]));
这让我想知道是否有一些PHP设置可能会导致这种情况。或者是别的什么我看过头了

仅供参考,生产服务器由付费托管提供商维护,我无权访问php.ini文件(但我在登台时有权访问)


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

尝试在日期函数中调整格式,如下图所示,以代替使用str\u replace

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


尝试在日期函数中调整格式,如下图所示,以代替使用str_replace

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


plz用代码解释你到底是如何解析日期的,你又是如何检查它是否被错误解析的?就像我说的,这个插件是别人写的,所以我不想分享。还有很多代码,如果代码中有错误,我不知道哪一位是相关的。嘿,你检查了两台服务器上的当前日期时间和时区了吗。好的,我已经更新了如何解析日期的问题,但我认为这不是问题所在@Bugfixer时区稍有不同(一个是墨尔本,另一个是珀斯),但两者都在AU.plz中,用代码解释,那么你如何准确解析日期,如何检查解析是否错误?就像我说的,这个插件是别人写的,所以我不想分享。还有很多代码,如果代码中有错误,我不知道哪一位是相关的。嘿,你检查了两台服务器上的当前日期时间和时区了吗。好的,我已经更新了如何解析日期的问题,但我认为这不是问题所在@这些时区略有不同(一个是墨尔本,另一个是珀斯),但都在非洲。
$date= date('d/m/Y', strtotime($dat));
$date= date('m-d-Y', strtotime($dat));