无法解析时间字符串:它在我的本地但在服务器上运行良好

Failed to parse time string: it is working good on my local but on server

我有一个代码可以在我的本地主机上运行,​​但在服务器上它会抛出错误。 错误是:Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (@1645.0000000006) at position 14 (0): Unexpected character

我的代码是:

function secondsToTime($seconds)
{
    $arr = array();
    $dtF = new DateTime('@0');
    $dtT = new DateTime("@$seconds");
    $arr[0] = $dtF->diff($dtT)->format('%h');
    $arr[1] = $dtF->diff($dtT)->format('%i');
    $arr[2] = $dtF->diff($dtT)->format('%s');
    return $arr;
}
print_r(secondsToTime("1645.0000000006"));

有什么问题?谢谢大家

显然,微秒的处理在 PHP 7.1 左右发生了变化,并且 PHP 接受十进制值作为从该版本开始的有效时间戳,但不是之前的版本。如果必须使其与以前的版本兼容,则需要将 float 转换为 int:

$dtT = new DateTime('@' . (int)$seconds);