2010-06-04 63 views

Trả lời

22

Tôi sẽ lấy date.js nếu không bạn sẽ cần phải cuộn chức năng định dạng của riêng mình.

+4

1. Date.js giống như bánh ngon ẩm ướt –

+8

Cần lưu ý rằng date.js phá vỡ datepicker jQuery UI vì nó thay đổi nguyên mẫu Date. jQuery lõi nói rằng họ sẽ không sửa lỗi liên quan đến điều này. – SupaIrish

4
var stringDate = "Sunday, February 28, 2010"; 

var months = ["January", "February", "March"]; // You add the rest :-) 

var m = /(\w+) (\d+), (\d+)/.exec(stringDate); 

var date = new Date(+m[3], months.indexOf(m[1]), +m[2]); 

Phương pháp indexOf trên mảng chỉ được hỗ trợ trên các trình duyệt mới hơn (tức là không phải IE). Bạn sẽ cần phải tự tìm kiếm hoặc sử dụng một trong nhiều thư viện cung cấp chức năng tương tự.

Ngoài ra mã thiếu kiểm tra lỗi cần thêm vào. (String không phù hợp với các biểu hiện thường xuyên, tháng không tồn tại, vv)

98

Nếu bạn đang chạy với jQuery bạn có thể sử dụng chức năng parseDate datepicker UI thư viện để chuyển đổi chuỗi của bạn vào một ngày:

var d = $.datepicker.parseDate("DD, MM dd, yy", "Sunday, February 28, 2010"); 

và sau đó làm theo nó lên với phương pháp formatDate để có được nó sang định dạng chuỗi bạn muốn

var datestrInNewFormat = $.datepicker.formatDate("mm/dd/yy", d); 

Nếu bạn không chạy với jQuery tất nhiên nó lẽ không phải là kế hoạch tốt nhất cho bạn cần jQuery lõi cũng làm mô-đun giao diện người dùng datepicker ... tốt nhất để đi với sự kết hợp stion từ Segfault ở trên để sử dụng date.js.

HTH

+8

+1 cho câu trả lời bằng jquery. Câu trả lời gần nhất cho câu hỏi đó. Nếu bạn đang sử dụng jquery, không cần phải thêm một lib. –

+3

Không, điều đó không đúng. datepicker không phải là một phần của jQuery. Một phần của jQuery UI.Nếu bạn chỉ có thư viện cốt lõi thì về cơ bản bạn đang thêm một lib khác. Nếu bạn không có hoặc không có kế hoạch sử dụng jQuery UI thì tôi sẽ xem xét Moment.js. –

+2

@Colin, đó là những gì tôi giải thích "bạn cần lõi jQuery cũng như mô-đun giao diện người dùng datepicker" có nghĩa là. – isherwood

2

Nếu bạn chỉ cần một lần, quá tải để tải plugin.

Đối với một ngày "dd/mm/yyyy", điều này làm việc cho tôi:

new Date(d.date.substring(6, 10),d.date.substring(3, 5)-1,d.date.substring(0, 2)); 

Chỉ cần đảo ngược tháng và ngày dd/mm/yyyy, cú pháp là new Date(y,m,d)

1

Sử dụng thời điểm js cho bất kỳ hoạt động ngày.

https://momentjs.com/

console.log(moment("Sunday, February 28, 2010").format('MM/DD/YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

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