2011-07-13 4 views
10

Google Apps Script có sử dụng phiên bản ECMaScript sôi nổi không thể phân tích cú pháp ngày không? Làm cách nào để phân tích cú pháp ngày 2011-04-11T19:25:40Z thành đối tượng ngày JavaScript trong Google Apps Script?Tại sao đối tượng Ngày của tôi trong Google Apps Script trả lại NaN

Kết xuất nhật ký của tôi từ nhật ký bên dưới NaN.

function showDate(){ 
    var d = Date.parse("2011-04-11T19:25:40Z"); 
    Logger.log(d); // <-- Logs NaN 
} 

Edit:http://jsfiddle.net/UTrYm/

Trả lời

15

Định dạng quy định tại phần 15.9.1.15YYYY-MM-DDTHH:mm:ss.sssZ như vậy có lẽ thử thêm mili giây để định dạng ngày của bạn như trong Date.parse("2011-04-11T19:25:40.000Z").

+1

Điều đó đã xảy ra. Có lý do gì khiến JSFiddle có thể phân tích cú pháp không nhưng Google Apps Script không thể? –

+6

@citizen conn, tôi tin rằng Google Apps Script sử dụng Rhino để giải thích JavaScript của bạn, trong khi JSFiddle đang sử dụng trình thông dịch được tích hợp trong trình duyệt của bạn. Tê giác được phép từ chối đầu vào đó theo thông số kỹ thuật nhưng trình thông dịch của trình duyệt của bạn được cho phép nhiều hơn so với thông số kỹ thuật yêu cầu và không yêu cầu mili giây. –

+1

Đọc của tôi về [phần 15.9.1.15] (https://es5.github.io/x15.9.html#x15.9.1.15) là có thể bỏ qua mili giây; giá trị vắng mặt nên được hiểu là không. –

0

Tập lệnh ứng dụng của Google hoạt động tốt khi bạn sử dụng dấu gạch chéo thay vì dấu gạch ngang. Giống như:

var date = new Date ('2017/12/26 9:55 am'); 
Logger.log(date);