2015-02-08 55 views
0

我目前正在爲Ruby on Rails項目開發一些JavaScript,但我的知識在Javascript世界中很輕。Javascript - 1天日曆的數學函數

我們有一個日曆中可供選擇的日期,最好我們要這樣來計算第1天:每天

租車價格=£100

如何,我們希望它的工作:

錄用1天(即,拾取上午15年8月2日 - 脫落晚上15年8月2日)=£100

在JavaScript是計算AA一天在24小時期間的時刻(即08/02/15 - 09/02/15),我們不想要。

代碼:

var hire_from = null; 
    var hire_to = null; 

    var setPrice = function() { 
     var oneDay = 24*60*60*1000; 
     if (hire_from && hire_to) { 
      var diffDays = Math.round(Math.abs((hire_from - hire_to)/(oneDay))); 
      var price = diffDays*$("#enquiry_price").val(); 
      $("span#weekly_price").html("£ "+price.toFixed(0)) 
      var fee = price*$("#enquiry_discount").val() 
      $("span#commission").html(fee.toFixed(0)); 
     } 
    } 

我如何更改JavaScript來的工作如前所述?

謝謝你的時間。

+0

不管你寫不給ü@MukeshAgarwal你是什麼意思的答案 – 2015-02-08 12:17:59

+0

?謝謝 – RubyMax 2015-02-08 12:23:53

+0

請提供更多示例來了解需要什麼。如果在23點59分拍攝並在00點01分返回,那麼它算作一兩天? – Hurelu 2015-02-08 13:16:16

回答

0

的問題是配製的方式,2個可能的公式可能:

答:第一分鐘計數如一日和第二計費一天24小時+ 1分鐘開始。這與所提供的代碼更接近。 (四捨五入即小數天)

oneDay = 24*60*60*1000; 
days = Math.ceil((hire_to - hire_from)/oneDay); 

B:天的數目是在日曆天1的差,而不管時間。根據澄清。 (即銦酸,過時+ 1)

//convert a ms time stamp to a local time day stamp 
//ie. whole days since long ago 
function localDayStamp(ms) { 
    var oneDay = 24*60*60*1000; 
    date = new Date(); 

    //remove all fractional miliseconds from the local day stamp 
    date.setTime(ms); 
    date.setHours(0); 
    date.setMinutes(0); 
    date.setSeconds(0); 
    date.setMilliseconds(0); 

    return Math.ceil(date.getTime()/oneDay); 
} 

// get the days 
days = 1 + localDayStamp(hire_to) - localDayStamp(hire_from); 
+0

僱用時間不會太多,我可能會過分強調這一點。這是幾天,所以如果您選擇08/02/15的From日曆和08/02/15的To日曆,則這將被歸類爲完整的一天預訂。如果發件人的日期是08/02/15,並且日曆日​​期是09/02/15,那麼這將被歸類爲2天預訂(即價格* 2) – RubyMax 2015-02-08 14:18:53