はじめに
ハイブリッドアプリを開発していて、Web上から動作確認してるときは普通に表示されているのに、実機で動かしたら全く表示されてない?!という現象が発生しました。その備忘録です。
現象
今回、投稿した記事の日時が現在時刻と比較してどれくらい経つかを計算して変換する実装をしていました。
投稿記事に「n分前」とか、「n時間前」とか出したかったんですね。
でも実機で見ると何も表示されなくなってる・・・ん・・・? デバッグしてもNaN・・・・? InvalidDate・・・?
原因
計算前の日時フォーマットが「yyyy-mm-dd hh: mm:ss」になっていました。
ブラウザ差異であるあるな話題ですが、以外と盲点。ハイフンだと動かないらしいです。
解決策
ハイフン → スラッシュにすることで解決。
let beforeDate = '2019-02-02 10:00:00';
let date = value.replace(/-/g, '/');
let resultDate = new Date(date); /** 2019/02/02 10:00:00 にしておくことで無事に意図した挙動へ! */
・・・
Date型には気をつけましょう!!!!!