php strtotime给出错误的结果


php strtotime giving wrong results

当我使用strtotime函数时,它会在两个不同的服务器上给我不同的结果。其中一个给了我正确的答案。它的php版本为5.2.10。

在另一台服务器上,它给了我错误的日期,它的php版本是5.0.4。我认为这种差异就是原因。

代码:

$fromDate = $_POST['fromDate']; // 25-11-2013
$strFromDate = date("Y-m-d", strtotime($fromDate));
echo $strFromDate; // 2018-05-06

有人能帮我吗?

这可能是因为PHP 5.0.4还不支持d-m-Y格式,请参阅此处的

尝试将格式d-m-Y更改为Y-m-d。这里有一个简单的例子:

$fromDate = '25-11-2013';
sscanf($fromDate, '%d-%d-%d', $d, $m, $Y);
$strFromDate = date("Y-m-d", strtotime("$Y-$m-$d"));
echo $strFromDate;

将适用于所有PHP 4.x和5.x版本

也许问题与区域设置有关。检查它是否在两台服务器上都匹配。