Javascript日期/时间格式

Javascript Date/Time Format

本文关键字:格式 时间 日期 Javascript      更新时间:2023-09-26

我在网页上放了一个时钟,我需要将其格式化,如下所示:

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

我想知道是否有更好的方法来实现这一点。

您可以使用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中查找输出。

使用此库http://momentjs.com/

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