回答編集履歴

2

状態遷移図追加。

2021/09/13 21:07

投稿

退会済みユーザー
test CHANGED
@@ -177,3 +177,65 @@
177
177
  echo json_encode(["utcms_from1970" => $time]);
178
178
 
179
179
  ```
180
+
181
+ (追記1)
182
+
183
+ 状態遷移図書いてみました。
184
+
185
+ ![イメージ説明](ba631b94ea03c52532162d3c43e0c0ed.png)
186
+
187
+ teratailではsvg使えないみたいなので、↑はPNGですが、元は↓のSVGです。
188
+
189
+ ```svg
190
+
191
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="151px" preserveAspectRatio="none" style="width:1173px;height:151px;background:#FFFFFF;" version="1.1" viewBox="0 0 1173 151" width="1173px" zoomAndPan="magnify"><defs><filter height="300%" id="flbkmc7f8q21n" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="74" cy="16" fill="#000000" filter="url(#flbkmc7f8q21n)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><g id="初期状態"><rect fill="#FEFECE" filter="url(#flbkmc7f8q21n)" height="50.2656" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="134" x="7" y="87"/><line style="stroke:#A80036;stroke-width:1.5;" x1="7" x2="141" y1="113.2969" y2="113.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="46" y="104.9951">初期状態</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="114" x="12" y="129.4355">(0)タイマ動いてない</text></g><g id="タイマ動作中"><rect fill="#FEFECE" filter="url(#flbkmc7f8q21n)" height="50.2656" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="226" x="381" y="87"/><line style="stroke:#A80036;stroke-width:1.5;" x1="381" x2="607" y1="113.2969" y2="113.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84" x="452" y="104.9951">タイマ動作中</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="206" x="386" y="129.4355">(正の整数)タイムアウトするUTC[ms]</text></g><g id="タイマ一時停止中"><rect fill="#FEFECE" filter="url(#flbkmc7f8q21n)" height="50.2656" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="322" x="837" y="87"/><line style="stroke:#A80036;stroke-width:1.5;" x1="837" x2="1159" y1="113.2969" y2="113.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="942" y="104.9951">タイマ一時停止中</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="302" x="842" y="129.4355">(負の整数)タイムアウトまでの残り時間を符号反転[ms]</text></g><!--MD5=[deaffe79b3ee21e90318abb8f74e4bd6]
192
+
193
+ link *start to 初期状態--><path d="M74,26.013 C74,38.698 74,62.4093 74,81.5698 " fill="none" id="*start-to-初期状態" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="74,86.8404,78,77.8404,74,81.8404,70,77.8404,74,86.8404" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[d30e3980f9843bd17f71c4a10a4dad22]
194
+
195
+ link 初期状態 to タイマ動作中--><path d="M141.32,124.398 C161.265,127.5283 183.199,130.4416 203.5,132 C260.143,136.3482 323.034,133.0252 375.773,127.9279 " fill="none" id="初期状態-to-タイマ動作中" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="380.844,127.4292,371.4953,124.3305,375.8681,127.9192,372.2793,132.292,380.844,127.4292" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="113" x="204.5" y="128.0669">update(toggle=1)</text><!--MD5=[f4aff1e9f12684eed04a722415600c46]
196
+
197
+ link タイマ動作中 to 初期状態--><path d="M380.961,112 C306.382,112 210.899,112 146.381,112 " fill="none" id="タイマ動作中-to-初期状態" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="141.015,112,150.015,116,146.015,112,150.015,108,141.015,112" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="203" x="159.5" y="105.0669">update(toggle=1)[残り時間&lt;=0]</text><!--MD5=[528ec752e90b9c75408ab4ceb4f5b690]
198
+
199
+ link タイマ動作中 to タイマ一時停止中--><path d="M607.107,112 C673.145,112 757.689,112 831.248,112 " fill="none" id="タイマ動作中-to-タイマ一時停止中" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="836.525,112,827.525,108,831.525,112,827.525,116,836.525,112" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="193" x="625.5" y="105.0669">update(toggle=1)[残り時間&gt;0]</text><!--MD5=[824f9ec85e989e5fe711c3d4bd431b3b]
200
+
201
+ link タイマ一時停止中 to タイマ動作中--><path d="M836.858,129.3611 C782.151,133.2067 720.667,135.283 664.5,132 C647.648,131.015 629.906,129.4868 612.494,127.704 " fill="none" id="タイマ一時停止中-to-タイマ動作中" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="607.102,127.1429,615.6386,132.0547,612.075,127.6614,616.4683,124.0978,607.102,127.1429" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="113" x="665.5" y="128.0669">update(toggle=1)</text><!--MD5=[7650aa9408f90a6e04a087846f450031]
202
+
203
+ @startuml
204
+
205
+ [*] - -> 初期状態
206
+
207
+ 初期状態 : (0)タイマ動いてない
208
+
209
+ 初期状態-> タイマ動作中:update(toggle=1)
210
+
211
+ タイマ動作中 : (正の整数)タイムアウトするUTC[ms]
212
+
213
+ タイマ動作中->タイマ一時停止中:update(toggle=1)[残り時間>0]
214
+
215
+ タイマ一時停止中 : (負の整数)タイムアウトまでの残り時間を符号反転[ms]
216
+
217
+ タイマ一時停止中->タイマ動作中:update(toggle=1)
218
+
219
+ タイマ動作中->初期状態:update(toggle=1)[残り時間<=0]
220
+
221
+ @enduml
222
+
223
+
224
+
225
+ PlantUML version 1.2021.11beta1(Unknown compile time)
226
+
227
+ (GPL source distribution)
228
+
229
+ Java Runtime: Java(TM) SE Runtime Environment
230
+
231
+ JVM: Java HotSpot(TM) 64-Bit Server VM
232
+
233
+ Default Encoding: UTF-8
234
+
235
+ Language: en
236
+
237
+ Country: US
238
+
239
+ --></g></svg>
240
+
241
+ ```

1

ファイル名が違っていたため修正

2021/09/13 21:07

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- MySQLではなく、ファイル``./timer.txt``を作成してそこに保存してます。
5
+ MySQLではなく、ファイル``./time.txt``を作成してそこに保存してます。
6
6
 
7
7
  ajaxでは残り時間ではなく、タイムアウトする時刻のようなもの(0と負値は意味が違う)を返しています。
8
8