2017-09-05 8 views
0

2つのJavaScript日時スタンプから日/時間/分を取得しようとしていますが、現在の時間がアプリケーションのフロントエンドに表示される将来のイベント時間を引いています。javtript(nodejs)の日時差分を取得できない

二つの日付: 今後のイベントの日付 - 2017年10月1日午後6時00分00秒 現在の日付 - 今()

現在のコード:

var currentTime = new Date(); 
var eventStarts = results[0][i].eventstarts; 
var difference = differenceInMilliseconds(eventStarts, currentTime); 
var date = new Date(difference); 
var days = date.getDay(); 
var hours = date.getHours(); 
var minutes = "0" + date.getMinutes(); 
var formattedTime = days + ':' + hours + ':' + minutes.substr(-2); 

これは正しく動作していないと私はなぜ、明らかに正しいではない2日の違いを返す、それは29日の上方に戻ってくるはずです。

私は現在日付FNS NPMパッケージを使用していますし、あなたがDateを持っている場合はそれが

+2

あなたは瞬間http://momentjs.com/を試してみましたか? – CascadiaJS

+0

Javaとの検索競合を避けるために、JavaScriptのスペルに注意してください。 –

答えて

3

を助ける場合、私は別のパッケージを試す気にならないが、それは、1月1日1970年に基づいているので、ときnew Date(difference)を設定しています。あなたは1970年1月1日に関連する日付を設定しています - あなたが探しているものではありません。

簡単な日付操作を可能にするライブラリmoment.jsを使用することをお勧めします。


@manzurul例Here

var now = "04/09/2013 15:00:00"; 
var then = "02/09/2013 14:20:30"; 

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss")); 
var d = moment.duration(ms); 

console.log(d.days(), d.hours(), d.minutes(), d.seconds()); 
+1

ああ、それは理にかなっています。私のコードはどのようにmoment.jsで動作するのですか? – Charles

+0

[ここ](https://stackoverflow.com/questions/18623783/get-the-time-difference-between-two-datetimes)は、2つの日付の間の違いを得ることについてのstackoverflowの投稿です –