首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript Moment.js正在尝试获取两个日期时间之间的差异

JavaScript Moment.js正在尝试获取两个日期时间之间的差异
EN

Stack Overflow用户
提问于 2018-08-11 23:37:59
回答 1查看 163关注 0票数 1

我正在尝试得到两个日期时间戳之间的差异,它们看起来像这样:

代码语言:javascript
复制
2018-08-22 00:00:00 
2018-08-11 15:34:31

我想以天-小时-分钟-秒为单位显示时间差。

到目前为止,我这样做了,但它总是返回NaN:

代码语言:javascript
复制
import moment from 'moment';

const calc = {

    render () {
        moment().format();
        this.calcDifference();
    },

    calcDifference() {
        let releaseDate = document.getElementById('release-at').value;
        let currentDate = document.getElementById('current-date').value;

        let ms = moment(
            releaseDate,
            "DD-MM-YYYY HH:mm:ss").diff(moment(currentDate,
            "DD-MM-YYYY HH:mm:ss")
        );
        let d = moment.duration(ms);
        let s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

        console.log(ms);
        console.log(d);
        console.log(s);
    }

};

    calc.render();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-12 01:53:13

calcDifference函数上,您可以执行以下操作

代码语言:javascript
复制
let releaseDate = moment('2018-09-22 00:00:00');
let currentDate = moment('2018-08-11 15:34:31');

const diff = releaseDate.diff(currentDate);
const diffDuration = moment.duration(diff);

console.log(`
  ${diffDuration.months()} months
  ${diffDuration.days()} days
  ${diffDuration.hours()} hours
  ${diffDuration.minutes()} minutes
  ${diffDuration.seconds()} seconds left!`);

如果来自release-at当前日期元素的值的格式为DD-MM-YYYY HH:mm:ss,请使用

代码语言:javascript
复制
let releaseDate = moment(document.getElementById('release-at').value, 'DD-MM-YYYY HH:mm:ss');
let currentDate = moment(document.getElementById('current-date').value, 'DD-MM-YYYY HH:mm:ss');

下面是一个有效的codepen

我希望它能有所帮助!:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51801248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档