日期之间经过的时间

Time elapsed between dates

本文关键字:时间 经过 之间 日期      更新时间:2023-09-26

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

我使用了以下代码:

$(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);
});

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

你正在减去两个字符串,这就是为什么它不起作用。

而是减去两个 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()行的末尾还有一个额外的右括号。