Php 中的字符串到日期时间

String to Datetime in Php

我从端口得到一个日期值。我想将该字符串值转换为日期时间。但我无法弄清楚如何。按照我尝试的方式删除代码开头的 0。

传入值:

;03122019;164202;

我的代码:

$data = fread($socket, 1024);
$down= array();
$down= split("#",$data);
$list_n= split(";",$down[$i]);
$time = '';
$time = strval($list_n[1])+''.$list_n[2];
$newformat = date('Y-m-d H:i:s',$time);
echo "Time ---------------> ".$time;
echo $newformat;

结果:

Time ---------------> 3122019164202
 3122-01-19 23:01:57

正在删除开头的 0。我想编辑这些值并将它们插入到数据库中。

我要:

Time ---------------> 2019-12-03 16:42:02

您可以使用DateTime::createFromFormat

$dateTime = str_replace(";","",";03122019;164202;");
$date = DateTime::createFromFormat('dmYHis', $dateTime);
echo $date->format('Y-m-d H:i:s');

更新:感谢 @Nemoden 的建议,您可以在没有 str_replace()

的情况下使用 createFromFormat
$dateTime = ";03122019;164202;";
$date = DateTime::createFromFormat(';dmY;His;', $dateTime);
echo $date->format('Y-m-d H:i:s');

输出:

2019-12-03 16:42:02