DateTime: createFromFormat在服务器上的问题,在本地机器上工作


DateTime::createFromFormat issue on server , works in local machine

将用户输入的时间转换为unix时间戳时出现问题,它在本地机器上工作而不在服务器上工作

这是我使用的代码,有人可以帮助请!!

为delivery_date_time

$d = str_replace('-', ',', $delivery_date);
$t = str_replace(':', ',', $delivery_time);
$date = $t.',0,'.$d;
$fulldate = explode(',',$date);
$h = $fulldate[0];
$i = $fulldate[1];
$s = $fulldate[2];
$y = $fulldate[3];
$m =$fulldate[4];
$d = $fulldate[5];
$dst = 0;
$date_delivery = date("h:ia d/m/Y",mktime($h,$i,$s,$m,$d,$y,$dst));
$objDate = DateTime::createFromFormat('H:ia d/m/Y',$date_delivery );
$timestamp_delivery_datetime = $objDate->getTimestamp();
$human_readable_date = date('d/m/Y h:ia',$timestamp_delivery_datetime);

代码可以工作,并且可以用于将日期转换为Unix时间戳,反之亦然。问题是我在服务器上使用的PHP版本。刚刚将PHP版本从5.2升级到5.4。

您声明您的活动服务器正在运行PHP 5.2。这是你的问题。

PHP 5.2不包含DateTime::createFromFormat()函数。该函数仅在PHP 5.3中引入。请参阅手册页确认。

你的代码将无法在PHP 5.2下运行。

PHP 5.2非常过时,所以我能给你的唯一建议就是尽快升级。除了所有缺失的功能之外,运行这样一个旧的不受支持的PHP版本还会使您面临被黑客攻击的严重风险。

目前PHP支持的最低版本是5.4,但如果可能的话,你应该直接升级到5.5或5.6,特别是因为你已经使用5.5作为你的开发基础。