質問編集履歴

2

細かく書き直し

2021/08/16 06:51

投稿

GPE46232209
GPE46232209

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,18 +1,22 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
+ もっと細かく書くことにしました。
3
4
 
5
+ 1日後、2日後、、、7日後、8日後と定期的に
4
6
 
5
- Datetime取得した時間固定する方法しています。
7
+ SQLデータのカウントの値保持するというプロセス作成ようとしています。
6
8
 
7
- 何か方法あるでしょうか。
9
+ まず
8
10
 
11
+ 初期値を今と固定して、そこから1日ずつデータを保持して8日後になれば、
9
12
 
13
+ データを別のところへ移し、保持していたデータベースデータと固定していた今の時間の
10
14
 
11
- diff()でカウントするものと併用して
15
+ ものをリセットしてまたカウントするというものです。
12
16
 
13
- if分で固定をするに1日後として扱う変数とカウントする変数比較演算子使って
17
+ ただ今考えれば、ソースだけではDBでの現在位置の時間が保持できないためどうしようかと考えています。どう考えても保持することは難しいので、今のところDBにtimestamp組み立てて、そこに設した現在時間入れて初期値として考えてカウントするというもをちょと行けそうじゃないかと思い始めたので、ごめんなさい、考え直しみます。
14
18
 
15
- 時間が来たらif分のなかみを実行しようとしてい
19
+ ただ、こうやれば、時間を固定することできるとい人がいれば教えていただきたいで
16
20
 
17
21
 
18
22
 
@@ -30,6 +34,140 @@
30
34
 
31
35
  <?php
32
36
 
37
+ try {
38
+
39
+ $db = new PDO('mysql:dbname=c-pro;host=127.0.0.1;charset=utf8', 'root', '' );
40
+
41
+ } catch (PDOException $e) {
42
+
43
+ echo "データベース接続エラー :".$e->getMessage();
44
+
45
+ }
46
+
47
+
48
+
49
+ //最初に$nowのクローンと、8日後の変数作る、じょうけんぶんきで1日経過ごと[ ]に結果を配列へ組み込む、8日後になったら表していたデータの中身である配列の中身をけして、クローンのリロードと8日後変数の再設定して循環
50
+
51
+
52
+
53
+ date_default_timezone_set('Asia/Tokyo');
54
+
55
+ $now = new DateTime();
56
+
57
+ //作ったが、このままでは初期値が固定されていないため固定される事はない、値を固定して、日時経過を変数として扱いたい。
58
+
59
+ $date = $now->format('Y-m-d H:i:s');
60
+
61
+
62
+
63
+ $dateImmu = new DateTimeImmutable($date);
64
+
65
+
66
+
67
+ $dtime1 = $dateImmu->modify("+1 day");
68
+
69
+ $dtime1 -> format("Y-m-d H:i:s");
70
+
71
+
72
+
73
+ $dtime2 = $dateImmu->modify("+2 day");
74
+
75
+ $dtime2 -> format("Y-m-d H:i:s");
76
+
77
+
78
+
79
+ $dtime3 = $dateImmu->modify("+3 day");
80
+
81
+ $dtime3 -> format("Y-m-d H:i:s");
82
+
83
+
84
+
85
+ $dtime4 = $dateImmu->modify("+4 day");
86
+
87
+ $dtime4 -> format("Y-m-d H:i:s");
88
+
89
+
90
+
91
+ $dtime5 = $dateImmu->modify("+5 day");
92
+
93
+ $dtime5 -> format("Y-m-d H:i:s");
94
+
95
+
96
+
97
+ $dtime6 = $dateImmu->modify("+6 day");
98
+
99
+ $dtime6 -> format("Y-m-d H:i:s");
100
+
101
+
102
+
103
+ $dtime7 = $dateImmu->modify("+7 day");
104
+
105
+ $dtime7 -> format("Y-m-d H:i:s");
106
+
107
+
108
+
109
+ $dtime8 = $dateImmu->modify("+8 day");
110
+
111
+ $dtime8 -> format("Y-m-d H:i:s");
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ $copy_now = $dateImmu->format('Y-m-d H:i:s');//これも初期値が変動されてしまう
120
+
121
+ $time = "+ 1 day";
122
+
123
+ $purpose_time = date("Y-m-d H:i:s", strtotime($time));
124
+
125
+ $update_day = new DateTime($purpose_time);
126
+
127
+ $diff = $now->diff($update_day);
128
+
129
+ $dtime_1 =& $dtime1;//modifyの扱い方が違うらしい。
130
+
131
+ $dtime1 = $dtime_1->format("Y-m-d H:i:s" );
132
+
133
+ //$dateの数値をformat変換してから1日後との比較しようとしている。
134
+
135
+ //参照私をする事ができない
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+ //条件分岐で、今の時間が$dtimeの値よりも飢えの時にtrueにする
144
+
145
+ if (($now > $update_day)>$date) {
146
+
147
+
148
+
149
+ echo 'SUCCESS';
150
+
151
+ } else {
152
+
153
+ echo 'FAILURE';
154
+
155
+ }
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+ ?>
166
+
167
+
168
+
169
+ <?php
170
+
33
171
  date_default_timezone_set('Asia/Tokyo');
34
172
 
35
173
  $now = new DateTime();
@@ -44,11 +182,11 @@
44
182
 
45
183
  if ($date> $fix_time) {
46
184
 
47
- echo 'SECCESS';
185
+ echo 'SUCCESS';
48
186
 
49
187
  } else {
50
188
 
51
- echo 'FALSE';
189
+ echo 'FAILURE';
52
190
 
53
191
  }
54
192
 

1

ソースがガバガバなので治しました。

2021/08/16 06:51

投稿

GPE46232209
GPE46232209

スコア14

test CHANGED
@@ -1 +1 @@
1
- PHP datetime値固定
1
+ PHP datetime関連値固定
test CHANGED
@@ -34,19 +34,15 @@
34
34
 
35
35
  $now = new DateTime();
36
36
 
37
- $fix_time = $now->format('Y-m-d H:i:s');
37
+ $date = $now->format('Y-m-d H:i:s');
38
-
39
- //ここの$dateを固定した値として想定しています。
40
38
 
41
39
  $time = "+ 1 day";
42
40
 
43
- $purpose_time = date("Y-m-d H:i:s", strtotime($time));
41
+ $fix_time = date("Y-m-d H:i:s", strtotime($time));
44
42
 
45
- $update_day = new DateTime($purpose_time);
43
+ //ここの$fix_timeを固定した値として想定しています。
46
44
 
47
- $diff = $now->diff($update_day);
48
-
49
- if (($now > $update_day)> $fix_time) {
45
+ if ($date> $fix_time) {
50
46
 
51
47
  echo 'SECCESS';
52
48