2017-06-18 1 views
0

現在、私は私にこの形式の日付(のcreated_at)を返すAPIで働いていますこの日付の形式と私がnew Date()から受け取ることができる現在の日付との間の差異。jsの中2つの日付の差をゲット

その差が元のため、このような形式にする必要があります。:

2 hours ago, 10 days ago. 

はJSで機能に建てられますか?または、この計算をどのようにして、適切な形式で回答を得ることができますか?

助けてください。

+2

私はいつも 'JSで物事のこれらの種類のためのmoment.js'をお勧めします。それをネイティブに行うのはかなり面倒です。 –

+0

あなたが求めている質問は重複しています。日付の解析時に:[* Date.parseが間違った結果を出すのはなぜですか?*](https://stackoverflow.com/questions/2587345/why-does-date-parse-give-incorrect-results) (* '10分前 'など)正確な秒数*](https://stackoverflow.com/questions/11479170/javascript-fuzzy-time-eg-10-minutes-ago-) thats-in-exact-seconds)である。 – RobG

+0

はい、実際は同じRobGです。 もう一度私の質問をお読みください。日時フォーマットの違いについて話していました... –

答えて

0

次のコードは、dateBがdateAの後に続くと仮定して動作します。そうでなければ、その差はマイナスになり、それを処理する必要があります。

これは、悲しいことに、それには何も組み込まれていない可能性があります。差分(ミリ秒単位)を得て、それを変化する単位に変換しようとしています。

幸いです、願っています。

var dateA = new Date("07/06/2017"); 
 
var dateB = new Date("10/06/2017"); 
 

 
var difference = dateB - dateA; 
 

 
var differenceUnit = "milisecond"; 
 

 
if(difference >= 1000) { 
 
\t difference = difference/1000; 
 
\t differenceUnit = "second"; 
 
\t 
 
\t if(difference > 60) { 
 
\t \t difference = difference/60; 
 
\t \t differenceUnit = "minute"; 
 

 
\t \t if(difference > 60) { 
 
\t \t \t difference = difference/60; 
 
\t \t \t differenceUnit = "hour"; 
 

 
\t \t \t if(difference > 24) { 
 
\t \t \t \t difference = difference/24; 
 
\t \t \t \t differenceUnit = "day"; 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
} 
 

 
difference = difference.toFixed(0); 
 

 
console.log("difference is: ", difference, (difference > 1 ? differenceUnit + "s" : differenceUnit))

関連する問題