0

2 つの日付の間の残りの割合を知る必要があります。

私はこのコードを使用しました:

$(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

2 つの文字列を減算しているため、機能しません。

代わりに 2 つの 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 に答える