2010-01-18 32 views
7

Tôi đang cố gắng tạo một hàm trên javascript để đưa ngày từ cơ sở dữ liệu của tôi theo định dạng (yyyy-mm-dd) và hiển thị nó trên trang như (dd/mm/yy).Chức năng Javascript để chuyển đổi ngày yyyy/mm/dd thành dd/mm/yy

Tôi sẽ đánh giá cao bất kỳ trợ giúp nào.

Cảm ơn.

PD: Hãy cho tôi biết nếu bạn cần giải thích rõ hơn.

+1

làm thế nào để bạn có được ngày từ cơ sở dữ liệu của bạn? –

+0

http://stackoverflow.com/search?q=convert+date – Upperstage

+3

Tôi có thể thực hiện một lời cầu xin để rời khỏi nó như nó được? 'yyyy-mm-dd' là định dạng ngày có thể đọc được hoàn hảo. 'dd/mm/yy' là một kinh dị mơ hồ. (Có phải là ngày đặt hàng của Anh hoặc Mỹ? Thế kỷ nào? Tôi không thể ngay lập tức biết bằng cách nhìn vào nó.) – bobince

Trả lời

11

Nếu bạn chắc chắn rằng ngày đến từ máy chủ hợp lệ, một RegExp đơn giản có thể giúp bạn thay đổi định dạng:

function formatDate (input) { 
    var datePart = input.match(/\d+/g), 
    year = datePart[0].substring(2), // get only two digits 
    month = datePart[1], day = datePart[2]; 

    return day+'/'+month+'/'+year; 
} 

formatDate ('2010/01/18'); // "18/01/10" 
+0

Chỉ trong trường hợp ai đó muốn hiển thị cả năm, tức là 4 chữ số sử dụng số này: năm = dateBắt đầu [0] .substring (0,4) Chỉ thêm vào vì nó có thể không rõ ràng ngay lập tức. Cảm ơn câu trả lời! –

9

Cách dễ nhất giả sử bạn đang không làm phiền về chức năng là năng động:

function reformatDate(dateStr) 
{ 
    dArr = dateStr.split("-"); // ex input "2010-01-18" 
    return dArr[2]+ "/" +dArr[1]+ "/" +dArr[0].substring(2); //ex out: "18/01/10" 
} 
1

Bạn cũng có thể muốn xem xét sử dụng date.js:

http://www.datejs.com

Để futureproof ứng dụng của bạn, bạn có thể muốn quay trở lại thời gian trong một timestamp UTC và định dạng với JavaScript. Điều này sẽ cho phép bạn hỗ trợ các định dạng khác nhau cho các quốc gia khác nhau (ở Hoa Kỳ, chúng tôi quen thuộc nhất với DD-MM-YYYY hoặc ví dụ) cũng như múi giờ.

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