2012-02-08 3 views
0

誰かが私に次のことを助けてくれますか?マイクロソフトのアクセスタイムフォーマットをPHPで変換する方法

私は、Microsoft Accessデータベースを照会するためにphpとsqlを使用しています。私は "一般的な日付"形式に設定されている "StartTime"と呼ばれる日付/時間フィールドを持っています。

マイクロフトアクセスGUI内からフィールドを検査すると、日付は「08:45:00」と表示されます。

私の問題は、私のPHPとSQLでこのデータを取得し、それをブラウザに表示すると、次のように表示されます。 "1899-12-30 09:00:00" 長い日付形式 'と言っているのはです)。

私は、phpの日付関数を「長い日付形式」を第2引数として使いこなしてみましたが、ブラウザで「08:45:00」という形式で表示するようには見えません。

誰かが私に何をする必要があるか教えてください。

おかげ

+0

これはちょうど時間を保存し、日付部分を無視しているようです。 PHPで日付文字列をタイムスタンプに変換する必要がある場合は、['strtotime()'](http://php.net/manual/en/function.strtotime.php)を使うことができますが、日付は32ビットプラットフォームで問題を起こします - 32ビット符号付き整数の範囲外です。 64ビットプラットフォームでは、 'strtotime()'はジョブをうまく処理し、 'date()'の2番目の引数に渡すことができる値を与えます。 – DaveRandom

答えて

1

は問題はMS Accessの分画とdoubleとして日付を格納していることです。だからそれに応じてそれを解析する必要があります。

数字の全部は、12月30日から1899年の日数です。小数点以下の桁数は、その日の分数です。だから、分を掛けるには24を掛け、分を得るには60分を掛け、分を掛けて60分を乗じて秒を得る必要があります。

また、分数に86400(24時間の秒数)を掛けて、PHP関数を使用して秒を時刻に変換することもできます。

この記事をチェックアウト: http://support.microsoft.com/kb/210276

1

あなたがフォーマットされた文字列として、あなたにそれらの日付/時刻値の時刻部分だけを与えるためにアクセスDBエンジンを求めることができる:

SELECT Format(StartTime, "hh:nn:ss") AS time_only 
FROM YourTable; 

あなたがwouldnする方法をPHPの値を変換する必要がありません...それらを使用してください。

関連する問題