2013-03-14 19 views
46

Tôi cần lấy giá trị ngày từ jquery datepicker biến thành định dạng chuỗi "MM/dd/yyyy" để có thể thực hiện bài đăng ajax phù hợp. Khi trang tải hoặc khi thay đổi datepicker, một cuộc gọi jquery ajax được thực hiện.Sử dụng moment.js để chuyển đổi ngày thành chuỗi "MM/dd/yyyy"

tôi có mã này:

var sTimestamp = 
moment($("#start_ts").datepicker("getDate")).format("MM/dd/yyyy"); 

Nhưng nó không biến nó thành "MM/dd/yyyy". Khi tôi sử dụng cáy để kiểm tra những gì được gửi xuống dây, đây là cơ thể:

startTimestamp=03%2FTh%2Fyyyy&endTimestamp=03%2FTh%2Fyyyy&pageSize=50&pageNum=0 

Nếu tôi sử dụng soạn trong cáy và thay đổi cơ thể:

startTimestamp=03/13/2013&endTimestamp=03/14/2013&pageSize=50&pageNum=0 

tôi nhận được câu trả lời đúng . Vì vậy, câu hỏi của tôi là, có cách nào để lấy một đối tượng ngày tháng và định dạng nó thành chuỗi "MM/dd/yyyy" bằng cách sử dụng moment.js không? Hoặc là có điều gì sai trái với cách tôi nhận được ngày từ datepicker?

Btw, tôi giả định rằng datepicker.getDate trả về một đối tượng ngày vì đó là những gì tài liệu jQuery cho tôi biết.

Cảm ơn bạn,

Trả lời

34

Tôi nghĩ rằng bạn chỉ cần viết hoa sai trong chuỗi định dạng. Theo tài liệu này nên làm việc cho bạn: MM/DD/YYYY

moment.js documentation

5

Hãy thử điều này:

var momentObj = $("#start_ts").datepicker("getDate"); 

var yourDate = momentObj.format('L'); 
46
StartDate = moment(StartDate).format('MM-YYYY'); 

... và định dạng ngày MySQL:

StartDate = moment(StartDate).format('YYYY-MM-DD'); 
+1

định dạng ngày MySQL (YYYY-MM-DD) cũng là alphanumerically có thể sắp xếp, nó có thể được sử dụng trong tên tệp để sắp xếp tệp, rõ ràng và có thể đọc được con người (không gây nhầm lẫn như dd/mm và mm/dd), ISO 8601 và khá nhiều định dạng lành mạnh duy nhất. "01/02/2016" chỉ là ... "Cái gì? Bạn đến từ đâu? Định dạng ngày nào họ sử dụng ở đó?" ;) –

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