2012-02-18 15 views
9

I zastanawiasz się, jaki jest najlepszy sposób przekonwertować datownika tego formatu -Datownik konwersja JavaScript

2012-02-18 14:28:32 

do prezentacji data tego formatu -

Saturday Feb 2012 14:28:32 

Many thanks :)

+0

Co do formatowania do końcowego łańcucha mogę ci [następujące biblioteki] (sugerować http://blog.stevenlevithan.com/archives/date-time -format). Jeśli chodzi o pierwszą część pytania, możesz odnieść się do [następującego pytania] (http://stackoverflow.com/questions/9229213/convert-iso-date-to-milliseconds-in-javascript/9229384) – Oybek

Odpowiedz

5

Javascript data funkcje są bardzo złe ... Masz możliwość konwersji na UTC http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_toutcstring

Ale jeśli to było do mnie, chciałbym spojrzeć na Datejs: http://www.datejs.com/ najlepiej javascript api data dla mnie

proszę przyjrzeć Pierwsze kroki z Datejs: http://www.datejs.com/2007/11/27/getting-started-with-datejs/

+4

w3schools też jest całkiem niezły - http://www.w3fools.com – ThiefMaster

1

Obiekt JavaScripts Date nie ma metod formatowania. Rozważę użycie zewnętrznej biblioteki, takiej jak this one. Wydaje się, że ma to, czego szukasz.

1

spróbować tego bloga ma wystarczająco dużo dateformats:

2

Najpierw należy zdefiniować tablicę słów angielskich (niedziela, poniedziałek, luty, mar itd):

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

Aby móc wstawić dodatkowy 0 na początku minutach i sekundach zdefiniować funkcję dopełnienia dla prototypu String:

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

Format daty i godziny takiego:

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); 

można dostać całą rzecz przez złączenie formattedDate i formattedTime, jak w:

wholeThing = formattedDate + " " + formattedTime; 
3

Rozważ użycie datejs który skały!

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

Dzięki za linię 2! – user1202278

+1

??? Uncaught RangeError: argument toString() musi mieć wartość od 2 do 36 dla Number.toString () na : 2: 21 –

+0

@PaoloBiavati oznacza to, że nazywają 'toString' na liczby, a nie data: https://stackoverflow.com/questions/16527109/javascript-date-tostring-radix-argument -error (użyj datejs). – Ehvince

1

Proponuję użyć zewnętrznej biblioteki js, aby to zrobić. Według mojej wiedzy, Moment.js jest najlepszą biblioteką konwersji daty i czasu.

W tym przypadku wykonuje zadanie w jednym wierszu. Wystarczy dodać moment.js w projekcji, a następnie wykonaj

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