0

データベースにデータを送信するために使用しているフォームが、時間を正しく処理していません (通常、実際の時間より数時間遅れています)。以下の出力は、実際には 7:28 ではなく 9:28 に行われました。時間を正しく処理するようにこれを修正するにはどうすればよいですか? 私は軍事時間を使いたくありません。私のウェブサイトホスティングサービスに問題がある可能性はありますか? これを XAMPP で試したところ、すべて正常に動作しました。どんな助けでも大歓迎です。

コード:

DATE_FORMAT(posts.post_date, '%W, %M %e, %Y at %h:%i %p') AS date

出力:

Saturday, July 6, 2013 at 07:28 PM
4

3 に答える 3

2

時間はサーバー時間になります。これに対する簡単な回避策は、date() または time() 関数が呼び出される前にタイムゾーンを手動で設定することです。

私はインドのコルカタにいるので、次のようなものがあります。

date_default_timezone_set('Asia/Kolkata');

または別の例は、LA - US です。

date_default_timezone_set('America/Los_Angeles');

サーバーが現在どのタイムゾーンにあるのかを次の方法で確認することもできます。

date_default_timezone_get();

次のようなものです:

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

したがって、あなたの質問に対する簡単な答えは次のようになります。

// Change the line below to your timezone!
date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y h:i:s a', time());

次に、すべての時間は、設定したタイムゾーンになります:)

于 2013-07-07T01:49:50.347 に答える
1

上でコメントしたように、を使用して日付と時刻のデフォルトのタイムゾーンを設定できます date_default_timezone_set()。ドキュメントはここにあります。

サポートされているタイムゾーンのリストは、こちらにあります。前述のメソッドで、デフォルトのタイムゾーンをパラメーターとして渡すことができます。

于 2013-07-07T01:52:03.747 に答える
0

E_NOTICE をオンにすると、タイムゾーンを設定せずに日付/時刻関数を使用すると通知が表示されるため、おそらくこれを解決するでしょう。

bool date_default_timezone_set (文字列 $timezone_identifier )

例えば:

<?php
date_default_timezone_set('America/Los_Angeles');

http://www.php.net/manual/en/function.date-default-timezone-set.php

于 2013-07-07T01:49:44.737 に答える