PHP DateTime 只能处理小数点后 4 位数字。因此,您的另一种选择是首先忽略该部分,然后 - 如果适用 - 将其附加回最终时间戳。但请记住,这可能会导致进一步的问题。$string = "2019-08-10D00:00:03.712125000";$parts = explode(".", $string);$microseconds = $parts[1];$date = DateTime::createFromFormat("Y-m-d\DH:i:s", $parts[0]);$timestamp = $date->getTimestamp();// If you want to round it to 4 decimal places// $microseconds = ltrim(round("0.".$microseconds, 4), "0.");// If you want to append the microseconds back for whichever reason// $timestamp .= ".".$microseconds;echo $timestamp;现场演示https://3v4l.org/8hqmr