1

Hey Stackfriends = P time() と date() 関数については知っていますが、達成したいのは、中国のユーザーがフランスのユーザーとは別の時間を表示することです。一部の計算には現地時間も使用しているため、JavaScript は使用できません。

4

4 に答える 4

3

JavaScript の使用を止める唯一の理由は、次の場合です。a) API を提供しているだけで、ページ コンテンツを制御できない。または b) いずれにせよ、クライアントは JavaScript をブロックしています。ユーザーにタイムゾーンの入力を求めるだけでなく、javascript を使用するのが最も信頼できる方法です。

Cookie または ajax が機能します。簡単な Cookie の方法として、この JavaScript を任意のページの head セクションに配置して、Cookie を追加します...

<script>

d = new Date; 
gmtoffset = d.getTimezoneOffset() / 60;
document.cookie = 'gmtoffset=' + gmtoffset;

</script>

次に、PHP スクリプトで、$_COOKIE['gmtoffset']GMT を基準としたタイムゾーンを取得するために読み取ります。

私見、タイムゾーン付きのクライアントの時間は、業界全体の標準リクエストヘッダーである必要があります。

編集: 2012 年 1 月 1 日以降に問題が発生する可能性があるため、Cookie の例から「有効期限」の日付を削除しました。

于 2011-01-22T21:10:36.313 に答える
1

2 つの適切な解決策があります。

  • ユーザーにタイムゾーンを尋ねます。大多数のユーザーの出身地のタイムゾーン、および/または JavaScript で検出されたローカルのタイムゾーンに基づいて、デフォルトのタイムゾーンを事前に選択します
  • Web サイトで UTC (GMT) を使用するだけです。

明らかに、どのオプションが適切であるかは、Web サイトによって大きく異なります。stackoverflow オプション 2 のようなサイトでは、日ベースのさまざまなイベントがあり、すべてのユーザーに対して同時に日を変更する必要があるため、最も理にかなっています。

于 2011-01-22T21:14:47.617 に答える
0

1 つの方法は、MaxMind の IP to City データベースのようなものを使用することです。これにより、ユーザーの IP アドレスのタイムゾーンを取得できます。

または、ユーザーに好みのタイムゾーンを尋ねて、それを Cookie またはセッション変数に記憶するだけです。

于 2011-01-22T19:55:49.783 に答える
0

私はそれを使用する必要はありませんでしたが、タイムゾーンを設定できる関数や、現在のタイムゾーン設定と GMT の違いを示す他の日付関数があるようです。これらはあなたを助けるかもしれません。

http://php.net/manual/en/datetime.settimezone.php

http://php.net/manual/en/function.date.php

于 2011-01-22T19:57:26.217 に答える