このエントリーをはてなブックマークに追加


PHPで文字列日時を整形する方法

本資料は、PostgreSQLからtimestamp型の日時文字列を取得した時、秒以下の値を含む文字列が返却されました。 PostgreSQLの日付時刻関連の関数を使用しSQLで対処できますが、本記事ではPHPで対処する場合の資料です。


スポンサーリンク

文字列日時を整形する

PostgreSQLのtimestamp型で処理したとき、以下のように秒以下の値が返却されました。

sakura=# select date from t1;
            date            
----------------------------
 2012-05-17 13:26:16.209357
(1 行)

以下のように日付時刻関連の関数である、date_truncを利用すればよいのですが、この記事ではPHPで対処することにしました。

sakura=# select date_trunc('second',date) from t1;
     date_trunc      
---------------------
 2012-05-17 13:26:16
(1 行)

PHPスクリプトによる文字列操作

文字列日時をPHPの日付時刻関連の関数をつかって操作できますが、本資料では、vsprintfとsscanfを利用して実現しまいた。
サンプルソースは以下の通りです。

<?php
  $in="2012-05-17 13:26:16.209357";
  $out=vsprintf("%d-%02d-%02d %02d:%02d:%02d", sscanf($in, "%d-%d-%d %d:%d:%d"));
  echo $out;
?>

$inには秒以下の値を含む日時文字列です。
vsprintf, sscanfを使用しフォーマットを整形し$outに格納しています。

実際の動作は以下の通りです。
コマンドラインから本スクリプトを動かした結果です。

$ php dateconv.php 
2012-05-17 13:26:16

以上、文字列日時のフォーマット整形について記述しました。


スポンサーリンク

添付ファイル: filedateconv.php 125件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:36:06 (1335d)