teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

コードの修正

2016/11/15 04:07

投稿

mukkun
mukkun

スコア882

answer CHANGED
@@ -1,23 +1,29 @@
1
1
  動くかわかりませんが、こういうロジックでどうでしょうか。
2
2
 
3
3
  ###追記
4
- すみません。。
4
+ 度々すみません。。ぼけぼけです。
5
- グローバル変数があるなら属性付与する必要ないですね
5
+ flagを追加しました
6
6
 
7
7
  ```JavaScript
8
- var gMoment = moment()._d; // 初回でmoment日付を取得
8
+ var gMoment = moment()._d, // 初回でmoment日付を取得
9
+ gFlag = true; // フラグ
9
10
 
10
11
  // 1秒毎に処理
11
12
  setInterval(function () {
12
13
  var _hour = gMoment.format('H'); // gMomentから時間を取得
13
14
 
14
- // 時間が0ったら
15
+ // 時間が0になったら
15
- if (_hour == 0) {
16
+ if (_hour == 0 && gFlag) {
16
17
  // 翌日になったらの処理
17
18
  gMoment = gMoment.add(6, 'day'); // 日を6日進める
18
19
  $('.header').text(gMoment.format('YYYY年M月D日')); // moment日付の付与とテキストの変更
20
+ gFlag = false;
19
21
  } else {
20
22
  gMoment = moment()._d;
23
+
24
+ if (_hour == 1 && !gFlag) {
25
+ gFlag = true;
26
+ }
21
27
  }
22
28
  }, 1000);
23
29
  ```

3

コード修正

2016/11/15 04:07

投稿

mukkun
mukkun

スコア882

answer CHANGED
@@ -1,22 +1,23 @@
1
1
  動くかわかりませんが、こういうロジックでどうでしょうか。
2
2
 
3
+ ###追記
4
+ すみません。。
5
+ グローバル変数があるなら属性付与する必要ないですね。
6
+
3
7
  ```JavaScript
4
- var gMoment = moment()._d;
8
+ var gMoment = moment()._d; // 初回でmoment日付を取得
5
- $('.header').attr('moment', gMoment) // 初回で「.header」にmoment日付を付与
6
9
 
7
10
  // 1秒毎に処理
8
11
  setInterval(function () {
9
- var _mDate = moment($('.header').attr('moment')), // .headerから日付を取得
10
- _hour = _mDate.format('H'); // _mDateから時間を取得
12
+ var _hour = gMoment.format('H'); // gMomentから時間を取得
11
13
 
12
14
  // 時間が0だったら
13
15
  if (_hour == 0) {
14
16
  // 翌日になったらの処理
15
- gMoment = _mDate.add(6, 'day'); // 日を6日進める
17
+ gMoment = gMoment.add(6, 'day'); // 日を6日進める
16
- $('.header').attr('moment', gMoment).text(gMoment.format('YYYY年M月D日')); // moment日付の付与とテキストの変更
18
+ $('.header').text(gMoment.format('YYYY年M月D日')); // moment日付の付与とテキストの変更
17
19
  } else {
18
20
  gMoment = moment()._d;
19
- $('.header').attr('moment', gMoment);
20
21
  }
21
22
  }, 1000);
22
23
  ```

2

コードの修正

2016/11/15 03:55

投稿

mukkun
mukkun

スコア882

answer CHANGED
@@ -1,7 +1,8 @@
1
1
  動くかわかりませんが、こういうロジックでどうでしょうか。
2
2
 
3
3
  ```JavaScript
4
+ var gMoment = moment()._d;
4
- $('.header').attr('moment', moment()._d) // 初回で「.header」にmoment日付を付与
5
+ $('.header').attr('moment', gMoment) // 初回で「.header」にmoment日付を付与
5
6
 
6
7
  // 1秒毎に処理
7
8
  setInterval(function () {
@@ -11,8 +12,11 @@
11
12
  // 時間が0だったら
12
13
  if (_hour == 0) {
13
14
  // 翌日になったらの処理
14
- var _nextWeek = _mDate.add(6, 'day'); // 日を6日進める
15
+ gMoment = _mDate.add(6, 'day'); // 日を6日進める
15
- $('.header').attr('moment', _nextWeek).text(_nextWeek.format('YYYY年M月D日')); // moment日付の付与とテキストの変更
16
+ $('.header').attr('moment', gMoment).text(gMoment.format('YYYY年M月D日')); // moment日付の付与とテキストの変更
17
+ } else {
18
+ gMoment = moment()._d;
19
+ $('.header').attr('moment', gMoment);
16
20
  }
17
21
  }, 1000);
18
22
  ```

1

コメント追加

2016/11/15 03:51

投稿

mukkun
mukkun

スコア882

answer CHANGED
@@ -3,14 +3,16 @@
3
3
  ```JavaScript
4
4
  $('.header').attr('moment', moment()._d) // 初回で「.header」にmoment日付を付与
5
5
 
6
+ // 1秒毎に処理
6
7
  setInterval(function () {
7
- var _mDate = moment($('.header').attr('moment')),
8
+ var _mDate = moment($('.header').attr('moment')), // .headerから日付を取得
8
- _hour = _mDate.format('H'); // Headerから(H)を取得
9
+ _hour = _mDate.format('H'); // _mDateから時を取得
9
10
 
11
+ // 時間が0だったら
10
12
  if (_hour == 0) {
11
13
  // 翌日になったらの処理
12
- var _nextWeek = _mDate.add(6, 'day');
14
+ var _nextWeek = _mDate.add(6, 'day'); // 日を6日進める
13
- $('.header').attr('moment', _nextWeek).text(_nextWeek.format('YYYY年M月D日'));
15
+ $('.header').attr('moment', _nextWeek).text(_nextWeek.format('YYYY年M月D日')); // moment日付の付与とテキストの変更
14
16
  }
15
17
  }, 1000);
16
18
  ```