如何匹配JavaScript

时间:2015-10-14 07:01:46

标签: javascript jquery date

我有一个脚本可以计算两个给定日期之间的周数。

然后创建一个表格,其中行数等于周数。

脚本看起来像这样

JSFIDDLE

脚本

$('#test').click(function () {

    // Here are the two dates to compare
    var date1 = '29-10-2015';
    var date2 = '29-12-2015';
    var Targetvalue = parseFloat("1000000");
        var dealjson = '[{"dealdate":"25-11-2015","cost":200000}]';

    // First we split the values to arrays date1[0] is the year, [1] the month and [2] the day
    date1 = date1.split('-');
    date2 = date2.split('-');

    // Now we convert the array to a Date object, which has several helpful methods
    date1 = new Date(date1[2], date1[1], date1[0]);
    date2 = new Date(date2[2], date2[1], date2[0]);

    // We use the getTime() method and get the unixtime (in milliseconds, but we want seconds, therefore we divide it through 1000)
    date1_unixtime = parseInt(date1.getTime() / 1000);
    date2_unixtime = parseInt(date2.getTime() / 1000);

    // This is the calculated difference in seconds
    var timeDifference = date2_unixtime - date1_unixtime;

    // in Hours
    var timeDifferenceInHours = timeDifference / 60 / 60;

    // and finaly, in days :)
    var timeDifferenceInDays = timeDifferenceInHours / 24;
    var timeDifferenceInWeeks = Math.round(timeDifferenceInDays / 7);
    // alert(timeDifferenceInDays/7);
    TargetPerweek = Targetvalue / timeDifferenceInWeeks;
    //Math.round(timeDifferenceInWeeks);
    TargetPerweek = Math.round(TargetPerweek * 100) / 100;
    var string = "<table data-role='table' class='ui-responsive'><thead><tr><th>Week</th><th>Target</th><th>Achieved</th></tr></thead>";
    for (var i = 1; i <= timeDifferenceInWeeks; i++)
    string = string + "<tr><th>Week" + i + "</th><td>" + TargetPerweek + "</td><td></td></tr>";

    string = string + "</table>";
    $('.varianceData').html(string);

});

HTML

<button id="test">See the Tab</button>
<div class="varianceData"></div>

如果您点击小提琴中的按钮,您将看到一张表格,其中包含目标并且每周都会达到价值。

所以我想展示他在相应的一周内完成交易所取得的成就

基于变量dealjson所以在achived列中我应该显示在相应的一周中实现的数量;

基于dealjson的预期输出

<table data-role="table" class="ui-responsive">
    <thead>
        <tr>
            <th>Week</th>
            <th>Target</th>
            <th>Achieved</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>Week1</th>
            <td>111111.11</td>
            <td>No Deal</td>
        </tr>
        <tr>
            <th>Week2</th>
            <td>111111.11</td>
            <td>No Deal</td>
        </tr>
        <tr>
            <th>Week3</th>
            <td>111111.11</td>
            <td></td>
        </tr>
        <tr>
            <th>Week4</th>
            <td>111111.11</td>
            <td>No Deal</td>
        </tr>
        <tr>
            <th>Week5</th>
            <td>111111.11</td>
            <td>200000</td>
        </tr>
        <tr>
            <th>Week6</th>
            <td>111111.11</td>
            <td></td>
        </tr>
        <tr>
            <th>Week7</th>
            <td>111111.11</td>
            <td>No Deal</td>
        </tr>
        <tr>
            <th>Week8</th>
            <td>111111.11</td>
            <td>No Deal</td>
        </tr>
        <tr>
            <th>Week9</th>
            <td>111111.11</td>
            <td>No Deal</td>
        </tr>
    </tbody>
</table>

1 个答案:

答案 0 :(得分:1)

您可以使用setDate()增加date1 7天的数量,直到它等于或大于date2。并使用简单的>= && <=比较交易日期,以检查日期是否在一周内,您将需要一个临时变量。 这是更新的fiddle。它没有优化,但它的工作原理。