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

Moment.js dynamically update time in seconds

本文关键字:动态 更新 时间 为单位 js Moment      更新时间:2023-09-26

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

对于我的问题,我找到了以前的解决方案(请参阅带有moment.js和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);
});

使用v2.11.0-JSFiddle演示

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

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

您提到的上一个解决方案适用于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