現在js
、そのカレンダーコードの関数を含む1つのファイルを使用していますが、カレンダーには常に現在の日付がクライアントの日付として表示されます。私はたくさん試しましたが、最終的にjavascriptのカレンダーは常にクライアントの日付と時刻を取得することがわかりました。それで、私のWebアプリケーションカレンダーが現在の日付を古いクライアントの現在の日付ではなくサーバーの現在の日付として表示する方法を教えてください
4 に答える
ご存知のように、jsは常にクライアント側の日付を取得するため、トリックを作成する必要があります
私が行く1つのトリックは
htmlのレンダリング時に、サーバー側の日付を非表示フィールドに取り込み、jqueryが現在の日付を呼び出すと、現在の日付として渡します。
現在のサーバー時刻を保持するサーバーから値を送信し、その値を保持するクライアント側で新しい日付オブジェクトを作成して、サーバー上の日付を効果的に表示することができます。
ただし、これはユーザーを非常に混乱させる可能性があるため、そうすることには非常に正当な理由が必要です。また、サーバーが現在1つのタイムゾーンにあり、明日(別のプロバイダーに移動した場合)にある可能性があるため、ユーザーからの応答を保存すると、日付に一貫性がなくなる可能性があります。
少し大きくなり、データセンター全体に冗長性が必要な場合は、データセンターを地理的に分散させる必要があるため、タイムゾーンが確実に異なります。
したがって、通常のベストプラクティスは、ユーザーに自分の時間を表示し、それをサーバー上で必要なものに変換することです。
これを試してください
$( ".selector" ).datepicker({ defaultDate: "<?php date("m-d-y"); ?>" });
次のように、ページの読み込み中に変数として単純に読み取ることができます。
$startOfMonth= date("01-mY");
のように日付ピッカーフィールドに割り当てます
">