-4
A
回答
-1
如果你想在C#中DIFF功能;
DateTime oldDate= "06/01/2014 12:00:00 AM";
TimeSpan timeDiff = DateTime.Now - oldDate;
int diff =Convert.ToInt32(timeDiff.TotalHours);
如果你想在JavaScript中它是一個腳本塊應該幫助你;
function diffDateTime(startDT, endDT) {
if (typeof startDT == 'string' && startDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[amp ]{0,3}$/i)) {
startDT = startDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/);
startDT = startDT.toString().split(':');
var obstartDT = new Date();
obstartDT.setHours(startDT[0]);
obstartDT.setMinutes(startDT[1]);
obstartDT.setSeconds(startDT[2]);
}
else if (typeof startDT == 'string' && startDT.match(/^now$/i)) var obstartDT = new Date();
else if (typeof startDT == 'string' && startDT.match(/^tomorrow$/i)) {
var obstartDT = new Date();
obstartDT.setHours(24);
obstartDT.setMinutes(0);
obstartDT.setSeconds(1);
}
else var obstartDT = new Date(startDT);
if (typeof endDT == 'string' && endDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[amp ]{0,3}$/i)) {
endDT = endDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/);
endDT = endDT.toString().split(':');
var obendDT = new Date();
obendDT.setHours(endDT[0]);
obendDT.setMinutes(endDT[1]);
obendDT.setSeconds(endDT[2]);
}
else if (typeof endDT == 'string' && endDT.match(/^now$/i)) var obendDT = new Date();
else if (typeof endDT == 'string' && endDT.match(/^tomorrow$/i)) {
var obendDT = new Date();
obendDT.setHours(24);
obendDT.setMinutes(0);
obendDT.setSeconds(1);
}
else var obendDT = new Date(endDT);
var secondsDiff = (obendDT.getTime() - obstartDT.getTime()) > 0 ? (obendDT.getTime() - obstartDT.getTime())/1000 : (86400000 + obendDT.getTime() - obstartDT.getTime())/1000;
secondsDiff = Math.abs(Math.floor(secondsDiff));
var oDiff = {}; // object that will store data returned by this function
oDiff.days = Math.floor(secondsDiff/86400);
oDiff.totalhours = Math.floor(secondsDiff/3600); // total number of hours in difference
oDiff.totalmin = Math.floor(secondsDiff/60); // total number of minutes in difference
oDiff.totalsec = secondsDiff; // total number of seconds in difference
secondsDiff -= oDiff.days * 86400;
oDiff.hours = Math.floor(secondsDiff/3600); // number of hours after days
secondsDiff -= oDiff.hours * 3600;
oDiff.minutes = Math.floor(secondsDiff/60); // number of minutes after hours
secondsDiff -= oDiff.minutes * 60;
oDiff.seconds = Math.floor(secondsDiff); // number of seconds after minutes
return oDiff;
}
usage;
var objDiff = diffDateTime('06/01/2014 12:00:00 AM', 'now');
var dtdiff = objDiff.days + ' days, ' + objDiff.hours + ' hours, ' + objDiff.minutes + ' minutes, ' + objDiff.seconds + ' seconds';
重要:你要記住,DateTime格式必須是EN-US格式DD/MM/YYYY HH:MM:SS。
+0
他希望它在JavaScript中。 –
+0
需要找到兩個日期之間的差異,而不是差異函數。謝謝 – user3710962
0
我建議你應該使用jquery date.js庫,那麼你可以使用它的時間跨度類象下面這樣:
var future = Date.parseExact("22:30:00", "hh:mm:ss");
var past = Date.parseExact("06:30:00", "hh:mm:ss");
var span = new TimeSpan(future - now);
和你的時間差異如下:
span.getHours() + ":" span.getMinutes() + ":" span.getSeconds()
1
你是多少最好用全日期對象來做這種類型的數學運算,否則你必須對時間值進行猜測,例如,如果結束時間小於開始時間,則必須在第二天。
以下包括一對幫助函數和一個主要函數來獲得差異。
// Convert h:m:s to seconds
function hmsToSecs(s) {
var b = s.split(':');
return b[0]*3.6e3 + b[1]*60 + +b[2];
}
// Convert seconds to hh:mm:ss
function secsToHMS(n) {
function z(n){return (n<10? '0':'') + n;}
var sign = n < 0? '-' : '';
n = Math.abs(n);
return sign + z(n/3.6e3|0) + ':' + z(n%3.6e3/60|0) + ':' + z(n%60);
}
// Calculate time difference between two times
// start and finish in hh:mm:ss
// If finish is less than start, assume it's the following day
function timeDiff(start, finish) {
var s = hmsToSecs(start);
var f = hmsToSecs(finish);
// If finish is less than start, assume is next day
// so add 24hr worth of seconds
if (f < s) f += 8.64e4;
return secsToHMS(f - s);
}
console.log(timeDiff('22:30:00','06:30:00')); // 08:00:00
console.log(timeDiff('06:30:00','22:30:00')); // 16:00:00
使用完整日期的對象,你可以這樣做:
var start = new Date(2014,5,5,22,30); // 22:30:00 on 5 June 2014
var finish = new Date(2014,5,6,6,30); // 06:30:00 on 6 June 2014
// Subtract dates to get difference in ms, convert to seconds and format
console.log(secsToHMS((finish - start)/1000)); // 08:00:00
console.log(secsToHMS((start - finish)/1000)); // -08:00:00
相關問題
- 1. 24小時時間格式
- 2. 檢查時間差在24小時
- 3. python - datetime.now()的24小時格式。小時
- 4. Moment.js 24小時時間格式,處理第24小時
- 5. 安卓:24小時格式
- 6. 如何在SQL Server 24小時格式中花費時間差
- 7. Python時間戳的24小時格式
- 8. 實際時間的24小時格式?
- 9. 查找一段24小時(未尤其是最後24小時)
- 10. jQuery的:如何獲得與12小時格式和時間的時間之差與24小時格式
- 11. 12小時或24小時格式的NSDateComponent中的小時?
- 12. 如何將24小時格式TimeSpan轉換爲12小時格式TimeSpan?表示爲24小時格式
- 13. 格式化時間大於24小時
- 14. Php驗證24小時時間格式
- 15. 以24小時格式顯示時間
- 16. 24小時AngularJS時間輸入格式
- 17. 升壓定時器24小時格式
- 18. 顯示24小時格式時間?
- 19. 24小時時間表 - 時間差
- 20. 使用javascript轉換24小時格式爲12小時格式
- 21. 24小時格式爲12小時格式
- 22. 轉換12小時格式到24小時格式在SQL Server
- 23. 正則表達式12小時和24小時時間格式
- 24. Flex中的時間格式「24小時制」和「12小時制」
- 25. 循環24小時制時差
- 26. 轉換日期,時間在12小時格式24小時格式的iOS
- 27. 從12小時格式到24小時格式的時間轉換
- 28. 在24小時內查找最大值
- 29. 從24小時更改JS時間格式12小時
- 30. jqm-calendar時間格式(默認24小時...寧願12小時)
爲什麼不應該的答案是16:00:00? –
用':'分割那個時間字符串,然後做你的數學運算,然後加入你的數學結果。 – Epsil0neR
我曾嘗試使用數學函數,但它顯示輸出爲-16:00:00,而不是08:00:00。 – user3710962