如何在php中将日期字符串解析为dateTime?
我有一个格式为2014-12-01 16:00:02153的日期字符串。如何将其解析为mysql的日期时间格式 我用的是laravel和Carbon。我的代码是Carbon::parse2014-12-01 16:00:02153如何在php中将日期字符串解析为dateTime?,php,datetime,php-carbon,Php,Datetime,Php Carbon,我有一个格式为2014-12-01 16:00:02153的日期字符串。如何将其解析为mysql的日期时间格式 我用的是laravel和Carbon。我的代码是Carbon::parse2014-12-01 16:00:02153 但是得到一个读取日期时间的错误::u构造:未能解析位置20处的时间字符串2014-12-01 16:00:02153 1:意外字符PHP被您正在移交的时间格式弄糊涂了 new DateTime("2014-12-01 16:00:02,153"); // fails
但是得到一个读取日期时间的错误::u构造:未能解析位置20处的时间字符串2014-12-01 16:00:02153 1:意外字符PHP被您正在移交的时间格式弄糊涂了
new DateTime("2014-12-01 16:00:02,153"); // fails
strtotime("2014-12-01 16:00:02,153"); // fails
这是因为结尾有逗号的意外部分。你从哪里得到这个用逗号分隔毫秒的奇怪时间戳?这是不寻常的
当您请求datetime(通常不需要任何毫秒)时,可以执行以下操作:
$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,可以单独处理毫秒。稍后将它们添加到生成的时间戳中,并检查碳的文档。您可以使用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');
我认为逗号是个问题,你应该删掉它,以及之后的任何东西,它应该可以复制欢迎词。这也是一个好主意+1!