2016-03-29 19 views
0

habe ich eine Uhr auf einer Web-Seite, und ich muß es formatiert werden, wie unten dargestellt:Javascript Datum/Zeit Format

Wednesday 29 March 2016 12:01:11 

Damit die Sekunden zu ändern werden. Ich habe dies wie folgt getan:

var myVar = setInterval(function() { myFunction() }, 1000) 

var dayName = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 
var monthName = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 
function myFunction() { 
    var d = new Date(); 

    var year = d.getFullYear(); 
    var month = d.getUTCMonth(); 
    var date = d.getUTCDate(); 
    var day = d.getUTCDay(); 

    var hours = d.getHours(); 
    if(hours < 10) { 
     hours = "0" + hours; 
    } 
    var mins = d.getMinutes(); 
    var secs = d.getSeconds(); 
    if (secs < 10) { 
     secs = "0" + secs; 
    } 

    var fullDateTime = dayName[day] + " " + date + " " + monthName[month] + " " + year + " " + hours + ":" + mins + ":" + secs; 

    document.getElementById("Time").innerHTML = fullDateTime; 

} 

Ich möchte wissen, ob es einen besseren Weg gibt, dies zu erreichen.

+0

Fragen zur Verbesserung des Arbeitscodes passen besser zu [codereview.se]. –

Antwort

0

Sie toLocaleString statt Zuordnung der Tage und Monate in Array verwenden können. Ich habe deinen Code etwas modifiziert.

var myVar = setInterval(function() { myFunction() }, 1000) 

function myFunction() { 
    var d = new Date(); 
    var locale = "en-us"; 

    var year = d.getFullYear(); 
    var month = d.toLocaleString(locale, { month: "long" }); 
    var date = d.getUTCDate(); 
    var day = d.toLocaleString(locale, { weekday: "long" }); 

    var hours = d.getHours(); 
    if(hours < 10) hours = "0" + hours; 

     var mins = d.getMinutes(); 
    if (mins < 10) mins = "0" + mins; 

     var secs = d.getSeconds(); 
    if (secs < 10) secs = "0" + secs; 

    var fullDateTime = day + " " + date + " " + month + " " + year + " " + hours + ":" + mins + ":" + secs; 

    document.getElementById("Time").innerHTML = fullDateTime; 

} 

Finden Sie die Ausgabe in jsfiddle.

+0

Vorsicht vor der Browser-Unterstützung [IE 11 und höher] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#compat-desktop) – ste2425

-1

Verwenden Sie diese Bibliothek http://momentjs.com/

var myVar = setInterval(function() { myFunction() }, 1000) 
function myFunction() { 
    document.getElementById("Time").innerHTML = moment().format('dddd Do MMMM HH:mm:ss'); 
}