javascript - 时刻 fromNow 返回奇怪的结果

标签 javascript momentjs

我在 Moment 中使用 fromNow,似乎得到了一些奇怪的结果。

var moment = require('moment');

var months = {
    Jan: '1', Feb: '2', Mar: '3', Apr: '4',
    May: '5', Jun: '6', Jul: '7', Aug: '8',
    Sep: '9', Oct: '10', Nov: '11', Dec: '12' }

var input = "3 Aug 2015, 12:30".replace(/,/g, "").split(' ')
var time = input.pop().split(':')
var date = input.reverse()
var t = date.concat(time);

t[1] = months[t[1]];
t = moment(t);

console.log(t.fromNow());

这是打印“一个月内”。

最佳答案

这似乎是您要输入到 moment 的数组(即 ["2015", "Aug", "3", "12", "30"]) 不是有效日期。如果在分配 moment(t) 后打印出 t.toDate(),它会显示“无效日期”。

为什么不简单地这样做,让 moment 正确解析您的日期:

var m = moment("3 Aug 2015, 12:30", "DD MMM YYYY, HH:mm");
console.log(m.fromNow());

> in 5 hours

关于javascript - 时刻 fromNow 返回奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31780084/

相关文章:

javascript - 为什么 moment-timezone 不适用于给定的时区

javascript - 在浏览器上显示服务器时间而不是客户端时间

javascript - 使用 jquery 重新排序元素

javascript - 如何使用 javascript 更改所有文本和背景的颜色?

javascript - 为什么Promise先于setTimeout执行?

javascript - 从字符串创建日期在浏览器中不同

JavaScript 闭包

用于检查数字是否有%符号的JavaScript正则表达式

javascript 只识别我的 if 语句

javascript - MomentJS 的 add() 函数可能存在错误