【问题标题】:convert datetime to timestamp php将日期时间转换为时间戳php
【发布时间】:2011-10-31 07:18:02
【问题描述】:

我的 GPS 设备正在与我的 php 网络服务通信,它发送 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 年,或任何解决方案

【问题讨论】:

标签: php datetime timestamp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用strptime()

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

    【讨论】:

      【解决方案3】:

      你可以使用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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-17
        • 2013-09-12
        • 2012-08-28
        • 1970-01-01
        • 2011-06-20
        • 1970-01-01
        • 1970-01-01
        • 2017-04-25
        相关资源
        最近更新 更多