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

回答編集履歴

1

チョウセイ

2019/10/09 02:42

投稿

yambejp
yambejp

スコア117892

answer CHANGED
@@ -15,4 +15,22 @@
15
15
 
16
16
  予めミリ秒を秒に変えてroundするかどうかで四捨五入の処理がされます
17
17
  ただし、四捨五入するということは0.5秒前に未来時間を表示してしまうということなので
18
- あまりおすすめはできません
18
+ あまりおすすめはできません
19
+
20
+ # 調整
21
+ ようはしきい値をどうするか次第ですね
22
+ ```javascript
23
+ var t = 3659999;
24
+ t=((t%1000>=995)?Math.round(t/1000):Math.floor(t/1000))*1000;
25
+ console.log(t); // 3660000
26
+ var t = 3659995;
27
+ t=((t%1000>=995)?Math.round(t/1000):Math.floor(t/1000))*1000;
28
+ console.log(t); // 3660000
29
+ var t = 3659994;
30
+ t=((t%1000>=995)?Math.round(t/1000):Math.floor(t/1000))*1000;
31
+ console.log(t); // 3659000
32
+ ```
33
+ 誤差の調整はできても前述した通り達していない未来日時を表示するのは
34
+ ただしいとは言えません。
35
+ setIntevalなどで時間をとるならループのタイミングを短くするなど
36
+ 運用面で対応を考えるべきです