JavaScipt で日付を追加するのと同じように、私の「DateExtensions」ライブラリはこれで十分だと思います。ここで入手できます:
http://depressedpress.com/javascript-extensions/dp_dateextensions/
参照されると、有効な日付のメソッドとして「add()」を呼び出し、多くの日付部分 (秒、分、日、時間など) のいずれかを渡すことができます。したがって、「curDate」が有効な JavaScript 日付オブジェクトであると仮定すると、次のように 5 日を追加できます。
newDate = curDate.add(5, "日");
負の値を使用すると、次のように減算されます。
newDate = curDate.add(-5, "日");
必要な日付を取得したら、ライブラリの dateFormat() メソッドを使用して、次のように表示できます。
curDate.dateFormat("MM/DD/YYYY");
リンクに完全なドキュメントがあります。
曜日の整数値
必要な整数値を取得することに関しては、実際には見た目が簡単です (そして、「if」は必要ありません)。date の getDay() メソッドは、日曜日を「0」、土曜日を「6」として、曜日を返します。したがって、日曜日からの週は通常次のようになります。
0,1,2,3,4,5,6
まず、そのスケールを逆にします。これは、値から 7 (セットのメンバーの合計数) を減算することで簡単に実行できます。これにより、次のスケールが得られます。
-7,-6,-5,-4,-3,-2,-1
近づいています。最初の値もゼロにする必要があります。これを行う最も簡単な方法 (私が思うに) は、メンバーの総数で値のモジュラス (剰余) を取得することです。これが基本的に行うことは、「-7」をゼロにして、残りをそのままにしておくことです。
0,-6,-5,-4,-3,-2,-1
ほぼ完了しました。最後に、負の数は必要ないため、Math.abs() メソッドを使用して符号を削除 (絶対値を取得) し、目的の結果を得る必要があります。
0,6,5,4,3,2,1
すべての話で、実際のコードはかなりコンパクトです。
Math.abs((cnt-7)%7)
これを元の例にラップすると、次のようになります。
newDate = curDate.add(Math.abs((curDate.getDay()-7)%7), "日");
サーバー対クライアント
ただし、nnnnnn のコメントを心に留めておいてください。JavaScript では、getDate() 関数は、サーバーではなくクライアントである Web ページの場合、実行されているマシンの現在の日付/時刻を取得します。
実際にクライアントの時間を意味していた場合は、設定して完了です。ただし、サーバー時間が本当に必要な場合、それは面倒で不可能です。サーバーを所有している場合、実際には、満たされたリクエストごとに現在のサーバーを Cookie に含めるルールを設定するのはそれほど難しくありません (上記のサイトでも私の Cookie ライブラリを使用して、情報にアクセスできます!)
面倒ですが、サーバーによっては、日付をグローバルとしてハードコーディングする JavaScript を各ページに少し追加する (できればヘッダーのマーク付き置換として) 古い学校のサーバー側インクルードを作成することもできます。変数。
また、現在のサーバー時間を返す Web サービスを作成することもできますが、そのためのクライアント オーバーヘッドは、配信されるデータに比べて異常です。
サーバーがあなたのものではない場合 (そして、所有者に上記の情報を提供してもらうことができない場合)、唯一の可能性のあるオプションは、直接 http 呼び出しを行い、HTTP の "Date" ヘッダーを調べることです。繰り返しになりますが、これのオーバーヘッドはリターンに比べて膨大ですが、実際にはそれが唯一の方法です。ただし、特定のサーバーが日付ヘッダーを返さないか、正しく返さない可能性があるため、このようなシステムは非常に柔軟でなければなりません。
たとえそれが機能したとしても、まだ「サーバー」の時間を取得していない可能性があること、または少なくとも必要なサーバーを取得していない可能性があることを理解してください。たとえば、階層型アーキテクチャでは、アプリケーション サーバーがページをレンダリングし、それを Web サーバーに渡して返す場合があります。アプリケーション サーバーではなく、Web サーバーの時間を取得します。また、任意の数のアプライアンスがヘッダーを書き換える可能性があります (たとえば、専用の SSL アプライアンスを使用してすべての暗号化作業をオフロードするのが一般的です。これらは多くの場合、ヘッダー自体を書き換えます)。
技術的になりすぎて申し訳ありません。JavaScript は、残念ながら「簡単な質問」がほとんどない分野の 1 つです。;^)
幸運を!