2012-02-18 75 views
9

Tôi tự hỏi điều gì là cách tốt nhất để chuyển đổi một dấu thời gian của định dạng này -Timestamp chuyển đổi JavaScript

2012-02-18 14:28:32 

đến một bài thuyết trình ngày định dạng này -

Saturday Feb 2012 14:28:32 

Rất cám ơn :)

+0

Để định dạng chuỗi cuối cùng tôi có thể đề xuất bạn [thư viện sau] (http://blog.stevenlevithan.com/archives/date-time -định dạng). Theo phần đầu tiên của câu hỏi, bạn có thể tham khảo [câu hỏi sau] (http://stackoverflow.com/questions/9229213/convert-iso-date-to-milliseconds-in-javascript/9229384) – Oybek

Trả lời

5
hàm ngày tháng

Javascript là khá xấu ... Bạn có tùy chọn để chuyển đổi sang UTC http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_toutcstring

Nhưng nếu là tôi, tôi sẽ nhìn vào Datejs: http://www.datejs.com/ tốt nhất api ngày javascript cho tôi

Hãy hãy nhìn vào sự việc bắt đầu với Datejs: http://www.datejs.com/2007/11/27/getting-started-with-datejs/

+4

w3schools là khá xấu, quá - http://www.w3fools.com – ThiefMaster

1

Đối tượng ngày JavaScripts thiếu phương pháp định dạng. Tôi sẽ xem xét sử dụng một thư viện bên ngoài như this one. Dường như nó có những gì bạn đang tìm kiếm.

1

thử blog này nó có đủ dateformats:

2

Trước tiên, bạn phải xác định một mảng của các từ tiếng Anh (Chủ nhật, thứ Hai, Feb, Mar, vv):

var daysOfWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], 
    monthsOfYear = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 

Để có thể chèn thêm các 0 vào đầu những phút và giây, định nghĩa một hàm đệm cho nguyên mẫu String:

String.prototype.padLeft = function(padString,length){ 
    var toReturn = String(this); 
    while(toReturn.length < length){ 
     toReturn = padString + toReturn; 
    } 
    return toReturn; 
} 

Format ngày tháng và thời gian như thế này:

var time = new Date(), formattedDate, formattedTime, wholeThing; 
formattedDate = daysOfWeek[time.getDay()] + ", " + monthsOfYear[time.getMonth()] + " " + time.getDate() + ", " + time.getFullYear(); 
formattedTime = time.getHours() + ":" + time.getMinutes().padLeft("0",2) + time.getSeconds().padLeft("0",2); 

Bạn có thể nhận được toàn bộ sự việc bằng cách kết hợp formattedDateformattedTime, như trong:

wholeThing = formattedDate + " " + formattedTime; 
3

Xem xét sử dụng datejs đó là đá!

var mydate = Date.parse('2012-02-18 14:28:32'); 
var result = mydate.toString('dddd MMM yyyy h:mm:ss'); 
console.log(result); 
+0

Cảm ơn cho dòng 2! – user1202278

+1

??? Đối số không đối xứng RangeError: toString() phải nằm trong khoảng từ 2 đến 36 ở Số.toString () tại : 2: 21 –

+0

@PaoloBiavati có nghĩa là bạn gọi 'toString' trên một số, không phải là ngày: https://stackoverflow.com/questions/16527109/javascript-date-tostring-radix-argument -error (sử dụng datejs). – Ehvince

1

Tôi muốn đề xuất sử dụng thư viện js bên ngoài để thực hiện việc đó. Theo hiểu biết của tôi, Moment.js là thư viện chuyển đổi ngày giờ tốt nhất hiện có.

Trong trường hợp này, nó thực hiện công việc trong một dòng. Chỉ cần thêm dự án moment.js vào dự án của bạn và sau đó thực hiện

var timestamp = '2012-02-18 14:28:32'; 
var formattedTime = moment(timestamp).format('dddd MMM YYYY HH:mm:ss'); // Saturday Feb 2012 14:28:32 
Các vấn đề liên quan