3

通过 javascript,我想根据今天生成这两天之间的完成百​​分比,我将在 jQuery UI 进度条上使用这个百分比来指示完成或剩余的时间。

我试过这个公式,但我最终总是得到 100:

假设我有两个日期:

start = new Date(2012,6,2); // Jul 02 2012
end = new Date(2012,6,8); // Jul 08 2012
today = new Date();

alert( Math.round(100-((end - start) * 100 ) / today) + '%' );

我怎样才能正确地做到这一点?

4

3 回答 3

3

由于您从服务器获取 unix 时间戳,因此您可以这样做

var start = 1341201600 * 1000,
    end = 1341720000 * 1000,
    now = +new Date;

Math.round(( ( now - start ) / ( end - start ) ) * 100) + "%" //73%
于 2012-07-06T13:46:25.810 回答
1

我冒昧地调整了评论。

var start = new Date(2012,6,2); // Jul 02 2012
var end = new Date(2012,8,2); // Sep 02 2012
var today = new Date();

var total = end - start;
var progress = today - start;

console.log( Math.round(progress/ total * 100 ) + "%" );

收益率 8% [ 7 月 6 日 ]

于 2012-07-06T13:55:08.253 回答
1

你的公式应该是

alert( Math.round(100 - (end - today) / (end - start) * 100 ) + '%' );
于 2012-07-06T13:45:15.890 回答