将日期时间转换为PHP时间戳

3
我的GPS设备正在与我的php Web服务通信,它会发送date=311011和time=060904格式的数据。
    $time=str_split($time,2);
    $date=str_split($date,2);
    $time=implode(":",$time);
    $date=implode("-",$date);

这给了我所需的日期和时间标准表示。

  • 日期=31-10-11
  • 时间=06:09:04

现在,我想将此日期、时间转换为时间戳。我尝试使用strtotime(),但日期似乎是31-10-11,导致结果奇怪。我是否需要静态添加20到11来使其成为2011,或者有其他解决方案?


可能是重复的问题,参考链接:http://stackoverflow.com/search?q=convert+datetime+to+timestamp+php - Gordon
在提问之前进行研究是必须的。请参考http://stackoverflow.com/questions/ask-advice - Gordon
3个回答

3

请查看日期格式。如果您使用-作为分隔符,PHP会认为它是y-mm-dd,但您的顺序是dd-mm-y。最简单的方法是将分隔符更改为.,这样就会变成dd.mm.y


0
你可以使用 strptime
$p = strptime($date.$time, '%d%m%y%H%M%S');
$timestamp = mktime($p['tm_hour'], $p['tm_min'], $p['tm_sec'], $p['tm_mon'], $p['tm_mday'], $p['tm_year']);

或者较新的DateTime变体:

$dateTime = DateTime::createFromFormat($date.$time, 'dmyHis');
$timestamp = $dateTime->format('U');

或者只是使用字符串操作,结合 mktime 在这样一个常规格式上:

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

0

使用 strptime()

具体来说:strptime("$date $time", '%d%m%y %H%M%S');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接