2017-03-06 80 views
4

如何獲得angular2中兩個日期之間的小時差?我不想使用像moment.js這樣的外部庫。日期時差 - Angular 2

具有例如:incidentTime = '2017年3月5日上午11時26分16秒'創建時間= '2017年3月6日上午12時26分16秒'

let time = +params.data.incidentTime - +params.data.creationTime; 
console.log("time: " + time); 

它應該返回25小時,但它返回NaN

回答

6

這應該做的工作:

let date1: string = params.data.incidentTime; 
let date2: string = params.data.creationTime; 

let diffInMs: number = Date.parse(date2) - Date.parse(date1); 
let diffInHours: number = diffInMs/1000/60/60; 

console.log(diffInHours); 

使用Math.floor四捨五入的結果下來,或者Math.ceil圓起來

+0

參數類型的「()=>數」不是分配給參數字符串類型。這條線上的錯誤讓diffInMs = Date.parse(date2) - Date.parse(date1); – user630209

0

將日期類型參數解析爲javascript的Date類型。

let date1 = new Date(params.data.incidentTime).getTime(); 
let date2 = new Date(params.data.creationTime).getTime(); 
let time = date1 - date2; //msec 
let hoursDiff = time/(3600 * 1000); 
0

試試這個: -

let time:any = new Date("2017-03-05 11:26:16").getHours(); 
let date2:any = new Date("2017-03-06 12:26:16").getHours(); 
console.log(time -date2, time, date2, "sdfsd"); 

但它返回NaN

,這是因爲使用的是日之前+符號被轉換youtr日期成數字格式,以便返回NAN(非數字)

+0

算術運算的右側必須是'any','number'或枚舉類型。錯誤行#3 – user630209

+0

請檢查Update @ user630209 –

+0

檢查更新後的結果是否返回NaN – user630209