我正在使用JS计算我的日期差异,但我没有得到舍入值请指导我。 用于查找近似金额的公式
value1 = todate - fromdate;
value2 = value1 / 30;
value3 = value2 * 5000;
为此我使用以下代码
var preioddiff = parseInt(todate ) - parseInt(fromdate);
var dividen = preioddiff / 30;
var totappamt = dividen * parseInt(5000);
但它没有给出正确的答案
例如From Date是04012011,如果我使用parseInt(todate) - parseInt(fromdate)减去该值,则日期为04022011;它返回值13303380
而不是0001000
答案 0 :(得分:1)
请解释你的逻辑,Meena。
从我看来,你的出发点是错误的。
您不能将格式化为字符串的日期视为“MMDDYYYY”形式,并且希望能够将它们减去日期计算,除非这两个日期在同一个月中。在这种情况下,只需处理日期并忽略年月。
您的情况:04022011 - 04012011 == 0001000(不应该是00010000 - 注意结尾的额外零点吗?)
怎么样:04012011 - 03312011 - 将它们视为数字,你会得到00700000,但它应该与上面相同,因为这两个日期只相隔一天。
答案 1 :(得分:0)
您可能需要指定基数,如下所示:
var res = parseInt('04022011', 10) - parseInt('04012011', 10);
答案 2 :(得分:0)
目前还不是很清楚你正在尝试做什么,但是这里是你如何获得两个JavaScript Date对象之间的天数:
var d1 = new Date('March 1');
var d2 = new Date('March 19');
var days_diff = Math.round((d2 - d1)/86400000);
alert(days_diff); // output is 18
当您从另一个日期中减去一个日期时,您将获得它们之间的毫秒数。请注意,并非所有天都具有相同的毫秒数(因为夏令时),显然,月份具有不同的天数,因此以这种方式进行日期计算会有风险。
答案 3 :(得分:0)
如果您使用parseInt
来解析可能以“0”开头的日期字符串,始终会放入第二个参数以指定基数(通常是10)。
传递给parseInt
的字符串将被解释为八进制,如果它以零开头,这就是你所拥有的。你永远不会以这种方式获得正确的结果。