質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2840閲覧

2週間に1度、日付自動更新を実装したい

anpan

総合スコア9

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/07/04 03:04

編集2017/07/05 11:56

###JavaScriptあるいはJqueryにて2週間に1度、日付自動更新を考えています。
JavaScript初心者ということを書き忘れていました。
通常の日付の取得は問題ありませんでした。しかし、
2週間に1度月曜日(曜日は任意)に日付を更新させたいと思い、色々と調べたて試していたのですが、
1週間に1度月曜日の取得は分かりましたが2週に1度というやり方が分かりませんでした。

今週の2017/7/3を起点として考えると
次は7/17に更新日が7/17に切り替わる。次は7/31、8/14、8/28,9/11、9/25...というように
2週間に1度だけ更新日の書き換えが入るようにしたいです。

■1週間に1度月曜日に更新のスクリプト例

<script type="text/javascript"> var now = new Date(); var Y = now.getFullYear(); var M = now.getMonth(); var D = now.getDate(); var W = now.getDay(); if (W == 0) { W = 6; } if (W == 1) { W = 0; } if (W == 2) { W = 1; } if (W == 3) { W = 2; } if (W == 4) { W = 3; } if (W == 5) { W = 4; } if (W == 6) { W = 5; } var monday = new Date(Y, M, D - W); var mY = monday.getFullYear(); var mM = monday.getMonth(); var mD = monday.getDate(); document.write(mY + '年' + (mM + 1) + '月' + mD + '日'); </script>

上記のスクリプトはローカルの日付の取得ですが、
最終的にはサーバーから取得いたします。
どなたかご教授お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/07/04 03:11

基準となる日付が必要になると思いますが、どこを起点に2週間でしょうか。
anpan

2017/07/04 04:06

協定世界時(1970/1/1)からではなく、今回では昨日の2017/7/3から起点で取得できれば助かります。
guest

回答1

0

ベストアンサー

適当な基準日を設定してその日と、本日の差をとって14で割ったあまりをつかってください

javascript

1var d0=new Date("2017-01-01 00:00"); 2var d1=new Date(); 3var d1=new Date(d1.getFullYear(),d1.getMonth(),d1.getDate()); 4var num=((d1-d0)/86400/1000)%14; 5console.log(num); 6if(num==0){ 7・・・ 8}

numと合致するのは必ずしも0である必要はなく
0~13の適当な数を指定すれば問題ありません

投稿2017/07/04 03:28

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anpan

2017/07/04 04:09

早々のご回答ありがとうございます。上記のスクリプトを参考に試してみます。
anpan

2017/07/05 12:04

初心者という事を書き忘れており、失礼しました。yambejp様にスクリプトを投稿していただきましたが、 私の知識では「num」の剰余をどのように扱えばできるか分かりませんでした。 また、「現在の日付-設定した機転の日付」を÷86400÷1000させる意味が分かりませんでした。 もしよろしければもう少し教えてもらえますでしょうか。よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問