如何将日期字符串解析为 php 中的日期时间?
How to parse date string to dateTime in php?
我有一个格式为“2014-12-01 16:00:02,153”的日期字符串。如何将其解析为 mysql 的日期时间格式?
我正在使用 laravel 和 Carbon。我的代码是 Carbon::parse("2014-12-01 16:00:02,153");
但是得到一个错误 DateTime::__construct(): Failed to parse time string (2014-12-01 16:00:02,153) at position 20 (1): Unexpected character
PHP 对您提交的时间格式感到困惑。
new DateTime("2014-12-01 16:00:02,153"); // fails
strtotime("2014-12-01 16:00:02,153"); // fails
这是因为末尾有逗号的意外部分。你从哪里得到这个用逗号分隔毫秒的奇怪时间戳?不一般。
当您要求通常不需要任何毫秒的日期时间时,您可以执行以下操作:
$timeparts = explode(",","2014-12-01 16:00:02,153");
Carbon::parse($timeparts[0]); // should work
$timeparts[1]
就是毫秒了
如果你想更精确,你可以四舍五入毫秒:
if(intval($timeparts[1]) >= 500) {
// time +1 second
}
... 或者如果您需要 em,您可以单独处理毫秒。稍后将它们添加到生成的时间戳中并查看 Carbon 的文档。
您可以使用 DateTime 对象的 createFromFormat 方法:
$dateTime = DateTime::createFromFormat('Y-m-d H:i:s,u', "2014-12-01 16:00:02,153");
echo $dateTime->format('Y-m-d H:i:s');
我有一个格式为“2014-12-01 16:00:02,153”的日期字符串。如何将其解析为 mysql 的日期时间格式?
我正在使用 laravel 和 Carbon。我的代码是 Carbon::parse("2014-12-01 16:00:02,153");
但是得到一个错误 DateTime::__construct(): Failed to parse time string (2014-12-01 16:00:02,153) at position 20 (1): Unexpected character
PHP 对您提交的时间格式感到困惑。
new DateTime("2014-12-01 16:00:02,153"); // fails
strtotime("2014-12-01 16:00:02,153"); // fails
这是因为末尾有逗号的意外部分。你从哪里得到这个用逗号分隔毫秒的奇怪时间戳?不一般。
当您要求通常不需要任何毫秒的日期时间时,您可以执行以下操作:
$timeparts = explode(",","2014-12-01 16:00:02,153");
Carbon::parse($timeparts[0]); // should work
$timeparts[1]
就是毫秒了
如果你想更精确,你可以四舍五入毫秒:
if(intval($timeparts[1]) >= 500) {
// time +1 second
}
... 或者如果您需要 em,您可以单独处理毫秒。稍后将它们添加到生成的时间戳中并查看 Carbon 的文档。
您可以使用 DateTime 对象的 createFromFormat 方法:
$dateTime = DateTime::createFromFormat('Y-m-d H:i:s,u', "2014-12-01 16:00:02,153");
echo $dateTime->format('Y-m-d H:i:s');