无法解析时间字符串:它在我的本地但在服务器上运行良好
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);
我有一个代码可以在我的本地主机上运行,但在服务器上它会抛出错误。
错误是: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);