2012-07-11 34 views

Trả lời

26

Trong hầu hết các trình duyệt mới hơn bạn có .toISOString() phương pháp, nhưng trong IE8 trở lên bạn có thể sử dụng sau đây (lấy từ json2.js bởi Douglas Crockford):

// Override only if native toISOString is not defined 
if (!Date.prototype.toISOString) { 
    // Here we rely on JSON serialization for dates because it matches 
    // the ISO standard. However, we check if JSON serializer is present 
    // on a page and define our own .toJSON method only if necessary 
    if (!Date.prototype.toJSON) { 
     Date.prototype.toJSON = function (key) { 
      function f(n) { 
       // Format integers to have at least two digits. 
       return n < 10 ? '0' + n : n; 
      } 

      return this.getUTCFullYear() + '-' + 
       f(this.getUTCMonth() + 1) + '-' + 
       f(this.getUTCDate())  + 'T' + 
       f(this.getUTCHours())  + ':' + 
       f(this.getUTCMinutes()) + ':' + 
       f(this.getUTCSeconds()) + 'Z'; 
     }; 
    } 

    Date.prototype.toISOString = Date.prototype.toJSON; 
} 

Bây giờ bạn có thể yên tâm phương pháp '.toISOString() gọi.

+2

Như thế này bạn sẽ ghi đè lên phương pháp ECMA Script 5, cũng cho [trình duyệt hỗ trợ nó] (http://kangax.github.com/es5-compat-table/). Vui lòng thêm điều kiện. –

+0

Bắt tốt, @BeatRichartz! Tôi đã cập nhật câu trả lời của mình cho phù hợp. –

+1

Thông thường không có lý do gì để xóa thông tin múi giờ. Xem http://stackoverflow.com/a/15302113/277267 –

6

Có phương pháp .toISOString() vào ngày. Bạn có thể sử dụng cho trình duyệt với sự hỗ trợ cho ECMA-Script 5. Đối với những người không có, cài đặt các phương pháp như thế này:

if (!Date.prototype.toISOString) { 
    Date.prototype.toISOString = function() { 
     function pad(n) { return n < 10 ? '0' + n : n }; 
     return this.getUTCFullYear() + '-' 
      + pad(this.getUTCMonth() + 1) + '-' 
      + pad(this.getUTCDate()) + 'T' 
      + pad(this.getUTCHours()) + ':' 
      + pad(this.getUTCMinutes()) + ':' 
      + pad(this.getUTCSeconds()) + 'Z'; 
    }; 
} 
+0

Bạn có thể vui lòng nhập lại mã đó không? – Bergi

Các vấn đề liên quan