Hey Stackfriends = P time() と date() 関数については知っていますが、達成したいのは、中国のユーザーがフランスのユーザーとは別の時間を表示することです。一部の計算には現地時間も使用しているため、JavaScript は使用できません。
4 に答える
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 の例から「有効期限」の日付を削除しました。
2 つの適切な解決策があります。
- ユーザーにタイムゾーンを尋ねます。大多数のユーザーの出身地のタイムゾーン、および/または JavaScript で検出されたローカルのタイムゾーンに基づいて、デフォルトのタイムゾーンを事前に選択します
- Web サイトで UTC (GMT) を使用するだけです。
明らかに、どのオプションが適切であるかは、Web サイトによって大きく異なります。stackoverflow オプション 2 のようなサイトでは、日ベースのさまざまなイベントがあり、すべてのユーザーに対して同時に日を変更する必要があるため、最も理にかなっています。
1 つの方法は、MaxMind の IP to City データベースのようなものを使用することです。これにより、ユーザーの IP アドレスのタイムゾーンを取得できます。
または、ユーザーに好みのタイムゾーンを尋ねて、それを Cookie またはセッション変数に記憶するだけです。
私はそれを使用する必要はありませんでしたが、タイムゾーンを設定できる関数や、現在のタイムゾーン設定と GMT の違いを示す他の日付関数があるようです。これらはあなたを助けるかもしれません。