2016-03-29 25 views
0

私は、Webページ上のクロックを入れて、私は以下に示すように、それをフォーマットする必要があります。Javascriptの日付/時刻の形式

Wednesday 29 March 2016 12:01:11 

秒が変更されるように。私はこれを以下のようにしました:

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; 

} 

これを達成するより良い方法があるかどうかを知りたいと思います。

+0

[codereview.se]には、作業コードの改善に関する質問が適しています。 –

答えて

0

あなたが代わりに配列に日と月を割り当てるのtoLocaleStringを使用することができます。あなたのコードを少し変更しました。

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; 

} 

jsfiddleの出力を見つけます。

+0

ただし、[IE 11以降]([https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#compat-desktop])のブラウザサポートには注意してください。 – ste2425

-1

使用このライブラリhttp://momentjs.com/

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