2

SQL サーバーに接続するアプリケーションを PHP で作成しました。このアプリケーションが Windows で実行される場合はsrvsqlライブラリを使用し、Linux の場合はsybaseライブラリを使用します。私の問題は、SQL サーバーの日付フィールドの出力が同じではないことです。sybase を使用すると、「2012 年 12 月 10 日 12:14:26:067PM」が表示されます。

すべてのクエリを変更せずに同じ出力形式を取得するように sybase 接続を設定するにはどうすればよいですか?

4

2 に答える 2

0

さまざまなデータベースから返される日付形式について心配する代わりに、PHP 側で処理することを検討してください。

これらの形式 (2012-12-10 12:14:26.067およびDec 10 2012 12:14:26:067PM) はどちらも、PHP によって認識されます。DateTime オブジェクトに渡されると、期待どおりに機能します。PHP 対話型プロンプトから:

php > $dt = new DateTime('Dec 10 2012 12:14:26:067PM');
php > echo $dt->format('r u'), "\n";
Mon, 10 Dec 2012 12:14:26 -0800 067000
php >
php > $dt = new DateTime('2012-12-10 12:14:26.067');
php > echo $dt->format('r u'), "\n";
Mon, 10 Dec 2012 12:14:26 -0800 067000

復習が必要な場合は、rは RFC 2822 日付uの形式コード、 はマイクロ秒の形式コードで、DateTimes でのみ機能します。

DateTimes に切り替えることで、入力形式を簡単に切り替えることができ、基本的に心配する必要はありません。DateTime はstrtotime解析規則を使用します。それらの制限を理解したいと思うでしょうが、通常、それらにぶつかることはありません.

于 2012-12-10T18:20:22.833 に答える