将datetime转换为时间戳php

将datetime转换为时间戳php,php,datetime,timestamp,Php,Datetime,Timestamp,我的GPS设备正在与我的php web服务通信,它发送date=311011和time=060904格式 $time=str_split($time,2); $date=str_split($date,2); $time=implode(":",$time); $date=implode("-",$date); 这为我提供了所需的日期和时间标准符号 日期=2011年10月31日 时间=06:09:04 现在,我想把这个日期,时间转换成时间戳。我使用strot

我的GPS设备正在与我的php web服务通信,它发送date=311011和time=060904格式

    $time=str_split($time,2);
    $date=str_split($date,2);
    $time=implode(":",$time);
    $date=implode("-",$date);
这为我提供了所需的日期和时间标准符号

  • 日期=2011年10月31日
  • 时间=06:09:04
现在,我想把这个日期,时间转换成时间戳。我使用strotime(),但日期似乎是2011年10月31日,这会产生奇怪的结果。我是否必须静态地将20添加到11以使其成为2011,或任何解决方案

使用
strtime()

具体来说:
strtime($date$time),“%d%m%y%H%m%S”)

您可以使用:

或更新的变体:

或者只是在这种常规格式上进行字符串操作:

list($d, $m, $y, $h, $i, $s) = str_split($date.$time, 2);
$timestamp = mktime($h, $i, $s, $m, $d, $y);

请看下面的图片。如果使用
-
作为分隔符,php假定它是
y-mm-dd
,但您的顺序是
dd-mm-y
。最简单的方法是将分隔符更改为
,它将是
dd.mm.y

在询问之前进行研究的可能重复不是可选的。看见
$dateTime = DateTime::createFromFormat($date.$time, 'dmyHis');
$timestamp = $dateTime->format('U');
list($d, $m, $y, $h, $i, $s) = str_split($date.$time, 2);
$timestamp = mktime($h, $i, $s, $m, $d, $y);