我正在試圖計算jquery中2個日期時間字符串之間的時間差。如何計算jQuery中2個日期時間值之間的時間差
我有2個輸入,其中輸入字符串是這樣的「1:00 PM」,第二個「3:15 PM」我想知道時間差。所以上面的例子中,我想顯示3.15
我所做的是
- 轉換時間爲24小時制。因此「1:00 PM」變成了「13:00:00」
- 我追加新的時間日期,像這樣新的日期(「1970-1-1 13:00:00」)
- 然後我計算像相差這麼
代碼:
var total = Math.round(((new Date("1970-1-1 " + end_time) - new Date("1970-1-1 " + start_time))/1000/3600) , 2)
但總總是返回整數和小數不那麼「下午1:00」和「3:15 PM」之間的差爲2不是2.15 。
我也試過這種
$(function(){
$('#to_ad,#from_ad').change(function(){
$('#total_ad').val(getDiffTime());
});
function fixTimeString(time){
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if(AMPM == "PM" && hours<12) hours = hours+12;
if(AMPM == "AM" && hours==12) hours = hours-12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if(hours<10) sHours = "0" + sHours;
if(minutes<10) sMinutes = "0" + sMinutes;
return sHours + ':' + sMinutes + ':00';
}
function getDiffTime(){
var start_time = fixTimeString($('#from_ad').val());
var end_time = fixTimeString($('#to_ad').val());
var start = new Date("1970-1-1 " + end_time).getTime(),
end = new Date("1970-1-1 " + start_time).getTime();
return parseInt(((start - end)/1000/3600, 10)*100)/100;
}
}
但total_ad輸入沒有顯示,但整數值。
我該如何解決這個問題?
感謝
[jquery的比較2倍(HTTP的可能重複: //sackoverflow.com/questions/4929604/comparing-2-times-with-jquery) – isherwood
'3.15 - 1 = 2.15'? – adeneo
jQuery從哪裏進入圖片?這不是簡單的JavaScript嗎? – biziclop