0

当我点击我的

<button id="A">Hello!</button>

我想触发我的函数 clickButton() ,但还想获得一个军事日期样式的时间戳 YYYYMMDDHHMMSSXXX,用于单击按钮的确切时间。我怎样才能在 JS 或更好的 JQuery 中做?

4

3 回答 3

3

只需垫并粘在一起

function makeStamp(d) { // Date d
    var y = d.getUTCFullYear(),
        M = d.getUTCMonth() + 1,
        D = d.getUTCDate(),
        h = d.getUTCHours(),
        m = d.getUTCMinutes(),
        s = d.getUTCSeconds(),
        pad = function (x) {
            x = x+'';
            if (x.length === 1) {
                return '0' + x;
            }
            return x;
        };
        return y + pad(M) + pad(D) + pad(h) + pad(m) + pad(s);
}
于 2013-02-18T18:23:08.193 回答
2

Paul S. 的分叉,包括毫秒(小提琴):

//makeStamp: Create a timestamp with format YYYYMMDDhhmmssxxx
function makeStamp(d) { // Date d
    // Get date's subparts as variables:
    var y = d.getUTCFullYear(), //   4 digits
        M = d.getUTCMonth() + 1,// 1-2 digits
        D = d.getUTCDate(),     // 1-2 digits
        h = d.getUTCHours(),    // 1-2 digits
        m = d.getUTCMinutes(),  // 1-2 digits
        s = d.getUTCSeconds();  // 1-2 digits
    ms = d.getUTCMilliseconds();// 1-3 digits
    // 2. Adjust lengths to be right:
    function l2(x) { // for months, days, hours, seconds. Force length=2 digits.
        x = x + ''; // stingify
        if (x.length === 1) { return '0' + x; }
        return x;
    }

    function l3(x) { // for milliseconds. Force length=3 digits
        x = x + ''; // stingify
        if (x.length === 1) { return '00' + x; }
        if (x.length === 2) { return  '0' + x; }
        return x;
    }
    // Concatenate to YYYYMMMDDDhhmmssxxx format:
    return y + l2(M) + l2(D) + l2(h) + l2(m) + l2(s) + l3(ms);
}

var c = makeStamp(new Date());
alert('Time on run was: ' + c);
于 2013-02-18T20:35:50.353 回答
0

如果格式不固定并且只关心您的按钮被点击的确切时间,您可以简单地使用toString()

如果您需要更大的灵活性并且需要在 JS 中进行大量的日期管理,请确保签出 Datejs正如您在toString函数的情况下看到的那样,它非常令人印象深刻并且有据可查。

于 2013-02-18T18:36:07.447 回答