よちよち歩きのITエンジニアのメモ

Web技術など学んだ内容をメモしておくブログです。どんなにちっちゃくてもいいから、 一歩、ほんの小さな一歩でも夢や目標に近づくように頑張ります

PHPでの日付フォーマット変換方法

ハッカーランク(hackerrank)にて日付変換の問題をPHPで解くにあたって、日付関連の関数を調べたのでそのメモです。

問題

Sample Input

  • 07:05:45PM

Sample Output

  • 19:05:45

プログラム

要点

  • strtotime関数で、日付文字列をタイムスタンプに変換する
    • 日付文字列を良い具合に解釈して、タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) に変換してくれる関数
    • PHP: strtotime - Manual
      • JavaだとSimpleDateFormatクラスで、日付文字列を解析するには、日付形式を指定("yyyy-MM-dd"のような)する必要があるが、PHPではその必要がない(JavaよりもPHPの方が楽だね!)
    • 解釈できる日付書式は以下、ページに描かれている。
  • date関数で、タイムスタンプを日付文字列に変換する
    • タイムスタンプを与えられたフォーマット文字列によりフォーマットし、日付文字列を返す関数
    • PHP: date - Manual

詳細

<?php

$handle = fopen("php://stdin", "r");
fscanf($handle, "%s", $time);

date_default_timezone_set('Asia/Tokyo');

// strtotime: 日付文字列をタイムスタンプに変換する
// date: タイムスタンプを日付文字列に変換する
echo date("H:i:s", strtotime($time));

?>