2011-10-31 89 views
3

我的GPS设备正在与我的php web服务进行通信,它发送日期= 311011和时间= 060904格式。将datetime转换为时间戳php

$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年,或任何解决方案

+0

可能重复的http://stackoverflow.com/search?q=convert+datetime+to+timestamp+php – Gordon

+0

在询问之前做研究不是可选的。看到http://stackoverflow.com/questions/ask-advice – Gordon

回答

3

看一看的date fortmats。如果您使用-作为分隔符,php会将其假定为y-mm-dd,但您的订单为dd-mm-y。最简单的方法是将分隔符更改为.,然后是dd.mm.y

+0

谢谢...你救了我的一天!我用了 。作为日期分隔符... – nuthan

0

使用strptime()

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

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); 
相关问题