【问题标题】:String to Datetime in Php [duplicate]PHP中的字符串到日期时间[重复]
【发布时间】:2019-12-04 00:46:35
【问题描述】:

我从端口获取日期值。我想将该字符串值转换为日期时间。但我不知道怎么做。按照我尝试的方式删除代码开头的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

【问题讨论】:

标签: php date datetime datetime-format


【解决方案1】:

您可以使用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

【讨论】:

  • 击败我... :) 但我对代码的改进是您实际上可以将这些 ; 保留在格式中,因此不需要 str_replace 任何东西
  • 删除了我的答案。唯一的区别是没有str_replace,但是DateTime::createFromFormat的格式是';dmY;His;
  • 如果你能说明这一点,那就太好了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2021-05-26
  • 2012-02-08
  • 2019-03-28
  • 1970-01-01
  • 2016-10-07
相关资源
最近更新 更多