0

我需要知道两个日期之间剩余的百分比。

我用过这段代码:

$(function () {
    var end = $('#data').text();
    var formattedDate = new Date();
    var day = formattedDate.getDate();
    var month = formattedDate.getMonth();
    month += 1;
    var year = formattedDate.getFullYear();
    if (day < 10) {
        day = "0" + day;
    }
    if (month < 10) {
        month = "0" + month;
    }
    var today = day + "/" + month + "/" + year;
    remaining = Math.round(((end - today) * 100) / today));
    alert(remaining);
});

但它不起作用。有什么建议吗?谢谢

4

1 回答 1

3

你减去两个字符串,这就是它不起作用的原因。

相反,减去两个 Date 对象,您将得到它们之间的毫秒数(忽略关于您定义为 2 个日期的百分比的数学)。

var now = new Date();
var then = new Date($('#data').text());

var remaining = Math.round(((then - now) * 100) / now);

当然,您仍然可以通过以下方式获取格式化的 DD/MM/YY 字符串;

var formattedDays = (now.getDay() < 10 ? "0" : "") + now.getDay();
var formattedMonth = (now.getMonth() < 9 ? "0" : "") + (now.getMonth() + 1);
var formattedDate = formattedDays + "/" + formattedMonth + "/" + now.getFullYear();

请注意,您Math.round()在行尾还有一个额外的右括号。

于 2013-11-06T09:10:28.203 回答