[英]Javascript - Math Function For 1 Day Calendar
我目前正在为Ruby on Rails项目开发一些Javascript,但是我对Javascript的了解很浅。
我们有一个日历,您可以从中选择日期,理想情况下,我们希望像这样计算1天:
每天租车价格= 100英镑
我们希望它如何工作:
租用1天(即早上15年2月8日上车-15年8月2日晚上下车)=£100
目前,JavaScript正在计算一天的时间超过24小时(即15/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以使其如前所述工作?
感谢您的时间。
问题的表达方式可能有两个可能的公式:
答:第一分钟计为一天,第二个计费日从24小时加1分钟开始。 这更接近于所提供的代码。 (即小数点后四舍五入)
oneDay = 24*60*60*1000;
days = Math.ceil( ( hire_to - hire_from ) / oneDay );
B:天数是日历天+1之差,与时间无关。 符合澄清。 (即inDate-outDate + 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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.