Moment.js 以秒为单位动态更新时间

Moment.js dynamically update time in seconds

我正在尝试显示一个时钟 每秒更新一次(例如1/5/2015 12:05:01 然后 1/5/2015 12:05:02,等等)使用 moment.js

我发现 以前的解决方案 我的问题(参见 Dynamic date and time with moment js and setinterval),但是它 不适用于最新版本的 moment.js (v2.11.0)。提供的解决方案使用 v2.6。

有人可以建议吗?

它对我来说似乎很好用。对于相同的代码。并且只有 moment.min.js 指向 v2.11.0

看看代码(致谢:MilkyWayJoe)-

var datetime = null,
        date = null;

var update = function () {
    date = moment(new Date())
    datetime.html(date.format('dddd, MMMM Do YYYY, h:mm:ss a'));
};

$(document).ready(function(){
    datetime = $('#datetime')
    update();
    setInterval(update, 1000);
});

使用 fiddle v2.11.0 - JSFiddle Demo

您之前提到的解决方案确实适用于 moment.js v2.11.0.

代码:

var datetime = null,
        date = null;

var update = function () {
    date = moment(new Date())
    datetime.html(date.format('dddd, MMMM Do YYYY, h:mm:ss a'));
};

$(document).ready(function(){
    datetime = $('#datetime')
    update();
    setInterval(update, 1000);
});

JSFiddle

但是 JSFiddle 在之前的解决方案中接受的答案不起作用并给出以下错误。

"Refused to execute script from 'https://raw.github.com/timrwood/moment/1.6.2/moment.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled."

只需从适当的 CDN 加载脚本即可解决此问题,如下所示:

https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.0/moment.min.js

一个工作紧凑的解决方案。

JSFiddle

HTML

<div id="datetime"></div>

JavaScript

var update = function() {
    document.getElementById("datetime")
    .innerHTML = moment().format('MMMM Do YYYY, h:mm:ss a');
}
setInterval(update, 1000);