2013-07-26 23 views
10

Khi sử dụng thanh kéo Tay lái của Meteor, làm thế nào để bạn chuyển đổi đầu ra của {{ timestamp }} từ Thu Jul 25 2013 19:33:19 GMT-0400 (Eastern Daylight Time) sang Jul 25?Ngày định dạng trong thanh ghi Meteor bracers {{timestamp}}

Cố gắng {{ timestamp.toString('yyyy-MM-dd') }} nhưng nó đã cho một lỗi

+4

Lưu ý: Các tiêu chuẩn [ 'toString()' cho 'Date's] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString) bỏ qua bất kỳ đối số nào được truyền cho nó và ECMAScript không định nghĩa bất kỳ phương thức nào khác có thể định dạng một 'Date' dựa trên một' Chuỗi' như ''yyyy-MM-dd''. Nếu bạn chưa bao gồm thư viện sửa đổi 'toString()', hãy xem http://stackoverflow.com/q/1056728 để biết các đề xuất. –

+0

đây là mô tả tốt hơn cách thực hiện việc này -> http://stackoverflow.com/questions/18580495/format-a-date-from-inside-a-handlebars-template-in-meteor –

Trả lời

37

Sử dụng một helper tay lái:

Template.registerHelper("prettifyDate", function(timestamp) { 
    return new Date(timestamp).toString('yyyy-MM-dd') 
}); 

Sau đó, trong html của bạn:

{{prettifyDate timestamp}} 

Nếu bạn sử dụng thời điểm:

Template.registerHelper("prettifyDate", function(timestamp) { 
    return moment(new Date(timestamp)).fromNow(); 
}); 
+6

Như @JonathanLonowski đã lưu ý ở trên, đó là đáng chú ý rằng 'timestamp.toString()' sẽ bỏ qua bất kỳ đối số nào được truyền cho nó. Tôi thấy rằng việc sử dụng MomentJS làm cho tất cả điều này cực kỳ đơn giản. – Spencer

+3

toDateString() hoạt động cho một định dạng viết tắt. – user592419

+0

@Akshat, lưu ý rằng sau khi một số lật lật, cú pháp bây giờ là ['Template.registerHelper'] (http://docs.meteor.com/#/full/template_registerhelper) – KyleMit

1

Điều này wor ked for me

Handlebars.registerHelper("prettifyDate", function(timestamp) { 
    return (new Date(timestamp)).format("yyyy-MM-dd"); 
}); 
+1

Điều này không thêm bất cứ điều gì vào câu trả lời được chấp nhận . –

+0

Tôi không biết nhưng như tôi nhớ toString đã không làm việc cho tôi. – user965884

+0

và câu trả lời ở trên đã được cập nhật sau câu trả lời của tôi. – user965884

1

Điều này phù hợp với tôi.

toString ("yyyy-MM-dd") - không chuyển đổi.

Template.registerHelper("prettifyDate", function(timestamp) { 
    var curr_date = timestamp.getDate(); 
    var curr_month = timestamp.getMonth(); 
    curr_month++; 
    var curr_year = timestamp.getFullYear(); 
    result = curr_date + ". " + curr_month + ". " + curr_year; 
    return result; 
}); 
Các vấn đề liên quan