web-dev-qa-db-ja.com

strtotime( 'today')が間違った時刻を返しますか?

ユーザーの現在の日付から選択リストを作成しようとしています。 UNIXタイムスタンプ形式で深夜に設定されるようにしたい。

これが私がしているすべてです:

$today = strtotime('today');
echo $today;

これは私の結果です:

1333144800

これは、2012年3月30日金曜日22:00:00 GMT(エポックコンバーターによる)(数時間で正しくありません)。

11
Johnathan Au

Strtotime()がUTCに関連するタイムスタンプを返すようにする場合(たとえば、システムがUTC/GMTに対して2時間のオフセットを持つタイムゾーンに設定されている場合、00:00:00 UTC +2ではなく00:00:00UTC) )、次のように指定する必要があります。

$today = strtotime('today UTC');
21
Niko

GMT(+0)時間

echo $today = strtotime('today GMT');
echo "<br>" . $today = date("d-m-Y H:i:s", $today);

サーバーはGMTで実行されると予想されます。これが最適です(後で時間表示を使用して操作する場合)。そうでない場合は、php.iniを調整してこの「date.timezone = GMT」を設定する必要があります。

それが完了すると、私のコードで00:00が表示されます。

次に、次の場合にWebサイトの日付を正しく表示するために、スクリプトで関数(つまり、DisplayDate())を開発する必要があります。

  • あなたはGMTエリアにいません
  • または/および、たとえばタイムゾーンを選択して、ユーザーにタイムゾーンの時間を表示させたい場合。

DisplayDate()には、夏時間(0、または+1時間/夏時間と冬時間)のサポートも含める必要があります。

6
Xfile
strtotime( $time )

uNIXのタイムスタンプを返すように設計されています。つまり、1970年1月1日からの秒数を返します。 http://www.php.net/manual/en/function.strtotime.php

これを回避するには、次のようなものを使用します。

$today = date("d/m/Y H:i:s", strtotime('today'));
echo $today;
2
Goldentoa11

曜日だけでなく時間も具体的に設定する必要があるかもしれません。

$today_midnight = strtotime('today UTC 00:00');
1
hohner

Php.iniファイルのタイムゾーン構成を確認する必要があります。私の場合(私はエルサルバドルに住んでいます)、次のように変更する必要がありました。

date.timezone = America/El_Salvador
0
PachinSV