2012-05-17 46 views
27

Possible Duplicate:
Formatting a date in javascriptLàm thế nào để định dạng ngày trong định dạng HH/mm/yyyy HH: mm: ss trong JavaScript?

Tôi biết các định dạng có thể khác trong đối tượng Ngày JavaScript nhưng tôi không tìm được cách định dạng ngày sang định dạng MM/dd/yyyy HH:mm:ss.

Vui lòng cho tôi biết nếu bạn gặp phải vấn đề như vậy.

+0

Tất cả các phương pháp này có trên các đối tượng ngày. Bạn đã thử cái gì? – Corbin

+0

Hi Corbin, tôi đã thử với một số định dạng được xác định trước nhưng tôi không có định dạng được xác định trước cho MM/dd/yyyy HH: mm: ss – Gendaful

Trả lời

76

Hãy thử một cái gì đó như thế này

var d = new Date, 
    dformat = [d.getMonth()+1, 
       d.getDate(), 
       d.getFullYear()].join('/')+' '+ 
       [d.getHours(), 
       d.getMinutes(), 
       d.getSeconds()].join(':'); 

Nếu bạn muốn hàng đầu zero cho giá trị < 10, sử dụng phần mở rộng con số này

Number.prototype.padLeft = function(base,chr){ 
    var len = (String(base || 10).length - String(this).length)+1; 
    return len > 0? new Array(len).join(chr || '0')+this : this; 
} 
// usage 
//=> 3..padLeft() => '03' 
//=> 3..padLeft(100,'-') => '--3' 

Áp dụng cho mã theo thời gian:

var d = new Date, 
    dformat = [(d.getMonth()+1).padLeft(), 
       d.getDate().padLeft(), 
       d.getFullYear()].join('/') +' ' + 
       [d.getHours().padLeft(), 
       d.getMinutes().padLeft(), 
       d.getSeconds().padLeft()].join(':'); 
//=> dformat => '05/17/2012 10:52:21' 

Xem mã này trong jsfiddle

See also

+0

Cảm ơn Kooilnc, tôi đã thử var d = new Date(); var dformat = [d.getMonth(). Join ('/') + d.getDate(). Join ('/') + d.getFullYear()]. ​​Join ('/') + '' + d. getHours(). join (':') + d.getMinutes(). join (':') + d.getSeconds()]; nhưng tôi nhận được "Uncaught SyntaxError: Unexpected token]". Bạn có biết lý do không? Cảm ơn sự giúp đỡ – Gendaful

+0

Mã của bạn hoàn toàn sai (bạn không thể sử dụng 'd.getMonth(). Join ('/')'). Hãy thử sao chép/chạy mã tôi đã đưa ra trong câu trả lời của tôi * mà không thay đổi nó *. Tôi đã thêm liên kết jsfiddle cho bạn – KooiInc

+1

Ví dụ của bạn không chính xác. Anh ấy yêu cầu MM/dd và bạn đã cung cấp định dạng dd/MM (kiểu châu Âu). –

2
var d = new Date(); 

var curr_date = d.getDate(); 

var curr_month = d.getMonth(); 

var curr_year = d.getFullYear(); 

document.write(curr_date + "-" + curr_month + "-" + curr_year); 

sử dụng này, bạn có thể định dạng ngày.

bạn có thể thay đổi sự xuất hiện theo cách bạn muốn sau đó

để biết thêm bạn có thể truy cập here

3
 

var d = new Date(); 

// calling the function 
formatDate(d,4); 


function formatDate(dateObj,format) 
{ 
    var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; 
    var curr_date = dateObj.getDate(); 
    var curr_month = dateObj.getMonth(); 
    curr_month = curr_month + 1; 
    var curr_year = dateObj.getFullYear(); 
    var curr_min = dateObj.getMinutes(); 
    var curr_hr= dateObj.getHours(); 
    var curr_sc= dateObj.getSeconds(); 
    if(curr_month.toString().length == 1) 
    curr_month = '0' + curr_month;  
    if(curr_date.toString().length == 1) 
    curr_date = '0' + curr_date; 
    if(curr_hr.toString().length == 1) 
    curr_hr = '0' + curr_hr; 
    if(curr_min.toString().length == 1) 
    curr_min = '0' + curr_min; 

    if(format ==1)//dd-mm-yyyy 
    { 
     return curr_date + "-"+curr_month+ "-"+curr_year;  
    } 
    else if(format ==2)//yyyy-mm-dd 
    { 
     return curr_year + "-"+curr_month+ "-"+curr_date;  
    } 
    else if(format ==3)//dd/mm/yyyy 
    { 
     return curr_date + "/"+curr_month+ "/"+curr_year;  
    } 
    else if(format ==4)// MM/dd/yyyy HH:mm:ss 
    { 
     return curr_month+"/"+curr_date +"/"+curr_year+ " "+curr_hr+":"+curr_min+":"+curr_sc;  
    } 
} 

+6

-1, mã hóa thực sự xấu ở đây – KooiInc

30
var d = new Date(); 
alert(
    ("00" + (d.getMonth() + 1)).slice(-2) + "/" + 
    ("00" + d.getDate()).slice(-2) + "/" + 
    d.getFullYear() + " " + 
    ("00" + d.getHours()).slice(-2) + ":" + 
    ("00" + d.getMinutes()).slice(-2) + ":" + 
    ("00" + d.getSeconds()).slice(-2) 
); 
+1

Nên sử dụng getDate() cho ngày tháng. Không thể chỉnh sửa vì SO muốn có hơn 6 ký tự được chỉnh sửa ... tiếng thở dài. – Llyle

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