ビットフライヤーの約定時刻(マイクロ秒含む)をPHPでunixtimeに変換する

ビットフライヤーの約定時刻をunixtimeに変換する関数。必要な修正をすれば他でも使えるはず。日付は結構厄介。
microtime()は、現在時刻のマイクロ秒をunixtimeに変更で、引数に指定の時刻を指定できないので、文字列入力で、マイクロ秒をunixtimeスタンプに変換する関数をつくってみた。

入力は、文字列時刻であればOK。
変換はマイクロ秒分を追加しているだけ。

※dateは、マイクロ秒が000になってしまうので、マイクロ秒の取得をしたい場合は、DateTime()でしか取得。
参考:php日付

$d = new DateTime();
$result = time_to_microtime ($d->format('Y/m/d H:i:s.v'));
//ISO 8601でも大丈夫
//$result = time_to_microtime ($d->format('Y/m/d\TH:i:s.v'));
echo $result;

//マイクロ秒に変換関数
function time_to_microtime ($input_time) {

  //文字列変換
  $input_time = (string)$input_time;
  //var_dump($input_time);

  //マイクロ秒分割
  $data = explode(".",$input_time);
  //var_dump($data);

  //時間、分、秒までは共通変換
  $head_time = strtotime((string)$data[0]);

  //3桁か確認する
  if(strlen((string)$data[1]) == 1) {
    $micro_parts = "00".(string)$data[1];
  } elseif(strlen((string)$data[1]) == 2) {
    $micro_parts = "0".(string)$data[1];
  } else {
    $micro_parts = (string)$data[1];
  }
  $format_time = $head_time.".".$micro_parts;
  $format_time = (float)$format_time*1000;
  return $format_time;
}
よかったらシェアしてね!
  • URLをコピーしました!
目次