このクエリの目的は、日付文字列を「m-d-Y H:i:」形式でフォーマットすることです。 s.u" は、ミリ秒単位で指定された Unix タイムスタンプから取得されます。ただし、結果はマイクロ秒フィールドに 000000 と表示され続けます。
<code class="php">$milliseconds = 1375010774123; $d = date("m-d-Y H:i:s.u", $milliseconds/1000); print $d;</code>
出力:
07-28-2013 11:26:14.000000
この問題を解決するには、次のようにします。入力形式 "U.u" を使用できます:
<code class="php">$now = DateTime::createFromFormat('U.u', microtime(true)); echo $now->format("m-d-Y H:i:s.u");</code>
出力:
04-13-2015 05:56:22.082300
このアプローチでは、PHP マニュアルの次の形式指定子を利用します。
createFromFormat() メソッドは、明示的に指定されていない場合、通常、ローカル タイム ゾーンを使用します。ただし、microtime() は Unix エポックからの経過秒数を UTC で返すため、DateTime オブジェクトは暗黙的に UTC に初期化されます。
特定のタイム ゾーンの時刻を表示する必要がある場合は、これを設定する必要があります。最初の DateTime 作成後に setTimeZone() を使用する:
<code class="php">$now->setTimeZone(new DateTimeZone('America/New_York'));</code>
書式設定された日付文字列を MySQL に入力するには、形式を次のように変更する必要があります:
<code class="php">format("Y-m-d H:i:s.u")</code>
以上が日付をミリ秒から m-d-Y H:i:s.u にフォーマットすると、マイクロ秒フィールドに 000000 が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。