繁体   English   中英

Javascript-1天日历的数学函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM