2013-07-03 56 views
6

Tôi nhận được biến chuỗi có ngày theo định dạng 6/1/2012, tôi muốn chuyển đổi nó thành 01 Jun 2012. JS FIDDLE DEMOChuỗi chuyển đổi JavaScript thành Ngày có định dạng (dd mmm yyyy) tức là 01 tháng 6 năm 2012

Mã tôi đã cố gắng:

var t_sdate="6/1/2012";     
var sptdate = String(t_sdate).split("/"); 
var myMonth = sptdate[0]; 
var myDay = sptdate[1]; 
var myYear = sptdate[2]; 
var combineDatestr = myYear + "/" + myMonth + "/" + myDay; 

var dt = new Date(combineDatestr); 
var formatedDate= dt.format("dd mmm yyyy") 
alert(formatedDate); 

Bắt đầu ra như 01 000 2012, yêu cầu như 01 Jun 2012

+0

Loại không bắt buộcLỗi: Đối tượng [đối tượng Ngày] không có định dạng 'phương pháp' là lỗi đăng nhập trong bảng điều khiển. Mã bạn có sẽ hoạt động nếu bạn bao gồm plugin dateformat-js trong mã của mình. –

+0

không sử dụng bất kỳ tệp js bên ngoài nào, có thể thực hiện nó mà không cần sử dụng bất kỳ tệp bên ngoài nào –

+0

Xem xét điều này: http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript?rq=1 – alun

Trả lời

8

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

function getFormattedDate(input) { 
    var pattern = /(.*?)\/(.*?)\/(.*?)$/; 
    var result = input.replace(pattern,function(match,p1,p2,p3){ 
     var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; 
     return (p2<10?"0"+p2:p2) + " " + months[(p1-1)] + " " + p3; 
    }); 

    alert(result); 
} 

getFormattedDate("6/1/2013"); 

Jsfiddle demo

+0

Giải pháp hoàn hảo, tối ưu mà không thêm 'external js' –

+0

Giải pháp được bản địa hoá chỉ hoạt động cho miền địa phương. –

+0

có cách nào để in tên ngày cùng với mã không? – Madhav

-1
"định dạng"

không phải là một phương pháp tiêu chuẩn của đối tượng Date

-4
dt.format("dd MMM yyyy") 

chữ Sử dụng vốn.

+0

Khi guy777 chỉ ra chính xác, JavaScript chuẩn không có hàm 'định dạng'. – Amadan

1
return $.datepicker.formatDate('dd-M-yy', new Date(dateVal)); //01-Dec-2014 
+3

Xin chào và chào mừng bạn đến với Stack Overflow. Nói chung, nếu các thẻ không bao gồm 'jquery' (hoặc một thư viện khác), câu trả lời sẽ không sử dụng thư viện để giải quyết vấn đề (hoặc chúng có thể gợi ý rằng việc sử dụng thư viện sẽ dễ dàng hơn). Ở đây, bạn chỉ cần giả định OP đang sử dụng jQueryUI; câu trả lời sẽ hữu ích hơn nếu bạn đề xuất rằng jQueryUI có chức năng tuyệt vời này, nhưng không có câu trả lời thư viện nào được ưa thích (đặc biệt là bình luận câu hỏi của OP). Ngoài ra hãy xem trợ giúp định dạng ngăn xếp ngăn xếp: thụt lề bốn ký tự cho các khối mã (hoặc đặt vào các dấu gạch chéo ngược cho mã nội tuyến). – Amadan

2

Vì người dùng khác đã đề cập rằng "format" không phải là phương pháp chuẩn của đối tượng Ngày. Bạn có thể làm điều đó mà không sử dụng bất kỳ phương pháp định dạng (thậm chí nếu có tồn tại bất kỳ)

var t_sdate = "6/1/2012"; 
var sptdate = String(t_sdate).split("/"); 
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 
var myMonth = sptdate[0]; 
var myDay = sptdate[1]; 
var myYear = sptdate[2]; 
var combineDatestr = myDay + " " + months[myMonth - 1] + " " + myYear; 

alert(combineDatestr); 

JsFiddle Demo

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