0

私は JS が初めてで、スクリプトに問題があります。従業員の勤続年月日をWeb上に表示したい。これを計算するための私のJSコードは次のとおりです。

var dateObj1 = new Date( '1992/07/07 18:00:00' );
var dateObj2 = new Date();

//get difference in milliseconds
var diffMilliseconds = dateObj1.getTime() - dateObj2.getTime();

//make the difference positive
if( diffMilliseconds < 0 ) diffMilliseconds *= -1;

//convert milliseconds to hours
var diffYears = ( diffMilliseconds / 1000 ) / 60 / 60 / 24 / 365;

//print on console
var num = diffYears;
num = Math.floor(num);

if (num > 1)
{
document.write(num + ' years');
}
else if (num < 1)
{
document.write('less than one year');
}
else
{
document.write(num + ' year');
}

約 45 ~ 50 人の従業員がいて、50 個の js ファイルを作成する代わりにvar dateObj1 = new Date( '1992/07/07 18:00:00' );、HTML で雇用日を定義したいと考えていますが、その方法を実際には知りません。

誰かが使用する HTML コードの一部と、変更する必要がある JS の一部を投稿できますか。

ありがとうございました。

4

2 に答える 2

0

指定された日付で従業員の名前を保持する Map (オブジェクト) を作成できます。次に、残り時間を計算する (そしてそれを表示する) ロジックを取得し、それをループに入れます。マップ内のすべての従業員について、その数を計算して印刷します。

于 2013-01-22T21:00:37.937 に答える
0

コードを関数に配置し、HTML からのデータを関数に渡すことで、いくつかの良い結果が得られるはずです。

HTML

<table>
    <thead>
        <tr>
            <td>Name</td>
            <td>Startdate</td>
            <td>Date in years</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Employee #1</td>
            <td>1992/07/07 18:00:00</td>
        </tr>
        <!-- More employees -->
    </tbody>
</table>

JavaScript

var rows = document.querySelectorAll("tbody tr"); // Get all the rows

for(var i = 0; i < rows.length; i++) {
    // For each row, get the start date
    var startdate = rows[i].cells[1].innerText,
        years = calculateYears(startdate);

    // Create a DOM element with the result, and add it to the table
    var td = document.createElement("td"),
        result = document.createTextNode(years);
    td.appendChild(result);
    rows[i].appendChild(td);
}

// Years calculation
function calculateYears(startdate) {
    // Your function, slightly modified
}

これが結果です!

于 2013-01-22T21:40:31.827 に答える