2013-02-18 60 views
0

當我點擊我的JQuery:如何獲取日期值爲「YYYYMMDDHHMMSSXXX」?

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

我想火我的函數clickButton()同時也獲得了軍方日期樣式時間戳YYYYMMDDHHMMSSXXX準確的時間被點擊的按鈕時。 如何在JS或更好的JQuery中做什麼?

+1

可能重複(http://stackoverflow.com/questions/1056728/formatting-a-date -in-javascript) – Alexander 2013-02-18 18:20:40

+0

你可以使用這個精彩的Javascript庫,它確實有助於處理日期:[Moment.js](http://momentjs.com/) – 2013-02-18 18:23:50

+0

注意:日期的SQL格式是YYYY-MM-DD HH: MM:SS – Hugolpz 2013-02-18 19:15:29

回答

2

保羅的叉S.答案包括的毫秒(fiddle):在JavaScript格式化日期]的

//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); 
+1

您正在使用'getMilliseconds'而不是'getUTCMilliseconds'。這兩者不太可能會有所不同,但您可能需要考慮將所有內容保存在_UTC_中。 – 2014-01-11 17:56:45

+0

犀利的發現! – Hugolpz 2014-01-12 17:42:06

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); 
} 
+0

Paul,什麼x = x +'';代表 ? – Hugolpz 2013-02-18 19:29:37

+0

隱式強制轉換爲字符串 – 2013-02-18 20:33:59

0

如果格式不固定,只在乎被點擊按鈕所處的確切時間,你可以簡單地使用toString()

如果您需要更大的靈活性和JS中需要大量的日期管理,請確保您簽出Datejs。這是非常令人印象深刻的,並且可以在toString功能的情況下看到。