2015-02-02 16 views
6

Tôi đang cố gắng để chuyển đổi ngày hệ thống sang định dạng ISO trong thời trang dưới đây sử dụng momentjsChuyển đổi hệ thống ngày sang định dạng sử dụng momentjs ISO

2015-02-17T19:05:00.000Z 

Tôi tuy nhiên không thể tìm thấy các thông số mà tôi cần phải sử dụng để có được ở định dạng mà tôi muốn. Tôi đã thử đoạn mã bên dưới ..

moment().format("YYYY-MM-DD HH:mm Z"); 

Tôi nhận kết quả là 2015-02-02 17: 24 + 05: 30.

Làm thế nào tôi có thể lấy nó như 2015-02-02T17: 24: 00.000Z

+2

Bạn không cần moment.js, sử dụng [* Date.prototype.toISOString *] tích hợp sẵn (http://ecma-international.org) /ecma-262/5.1/#sec-15.9.5.43). Có một [* polyfill trên MDN *] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) cho các trình duyệt cũ như IE 8. – RobG

Trả lời

10

này được khá tốt bao gồm trong docs. Tuy nhiên, chúng dài, vì vậy đây là chi tiết cụ thể:

Vì một số lý do, định nghĩa của ISOJ01 khác với độ phân giải ECMAScript, do đó nó không được tích hợp. Định dạng là YYYY-MM-DDTHH:mm:ss.sssZ và phải ở dạng UTC (các Z biểu thị điều này).

Vì vậy, moment().utc() đảm bảo múi giờ chính xác.

Sau đó format nó:

moment().utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]"); 
// 2015-02-02T21:38:04.092Z 

Các Zescaped with square brackets. Chúng tôi có thể làm điều này một cách an toàn vì chúng tôi đã buộc UTC.

Phần còn lại của các ký tự biểu thị các phần tử thời gian khác nhau theo format table.


Bạn cũng có thể làm những gì RobG nói và sử dụng đối tượng ngày gốc. Trong trường hợp bạn bắt đầu với một thời điểm:

moment().toDate().toISOString() 
// 2015-02-02T21:40:06.395Z 
+1

Mẹ ngọt ngào của chúa tể , cuối cùng tôi đã có định dạng cho ISO cho thời điểm 'YYYY-MM-DDTHH: mm: ss.SSS [Z]': \ –

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