Unix时间戳的moment.js格式?

Posted

技术标签:

【中文标题】Unix时间戳的moment.js格式?【英文标题】:moment.js format for unix timestamp? 【发布时间】:2016-07-17 16:27:10 【问题描述】:

我正在尝试使用 moment.tz 将 unix 时间戳转换为本地时间。我注意到在传递日期时我必须使用格式,就像这样

moment.tz(date, 'MM/DD/YYYY hh:mm a', zone).format('MM/DD/YYYY hh:mm a');

我的问题是当我想从 unix 时间戳转换为日历之类的日期时,转换失败。我应该为格式字符串传递什么?

我试过这两种格式都没有成功

var date = moment.tz(publishInterval.DateUnix, 'X', zone).format('MM/DD/YYYY hh:mm a');


var date = moment.tz(publishInterval.DateUnix, zone).format('MM/DD/YYYY hh:mm a');

【问题讨论】:

第一个示例中名为date 的变量中精确 是什么,或者您的第二个和第三个示例中名为publishInterval.DateUnix 的变量是什么?请举个例子。 (zone 也一样)。 【参考方案1】:

你试过了吗 moment(date).format('MM/DD/YYYY hh:mm a') 原样?

【讨论】:

如果date 变量是一个数字,并且以毫秒为单位,这将起作用。 (不确定这是否是 OP 所拥有的。)【参考方案2】:

我相信在使用 moment 时有一个非常简单的解决方法。 只需将 .unix 函数与 moment 一起使用。下面是一个例子-

var date = moment.unix(date).format("MM/DD/YYYY hh:mm a")

【讨论】:

【参考方案3】:

我知道我迟到了大约 5 年,但万一有人偶然发现了这个帖子并试图找出答案,那就是……

我必须将日期分解为 unix 时间戳,以便正确地对它们进行 .sort()。

这是我将它们转换回来的方法:

let categories = ['2021-08-24', '2021-08-23', '2021-08-25', '2021-08-22', '2021-08-21', '2021-08-25', '2021-08-20']

//Convert to unix time-stamp looping through array of dates
for (let i = 0; i < categories.length; i++) 
    let tempDate = moment(categories[i]).format();
    categories[i] = moment(tempDate).unix();


categories.sort();

//Revert Back to 2021-08-24 looping through same array
for (let i = 0; i < categories.length; i++) 
    let tempDate = moment.unix(categories[i]).format('YYYY-MM-DD hh:mm:ss:SSS a');
    categories[i] = moment(tempDate).format('YYYY-MM-DD');

【讨论】:

也许添加一些事件监听器或 html 代码来运行你的 JS 以显示你的代码正在运行。

以上是关于Unix时间戳的moment.js格式?的主要内容,如果未能解决你的问题,请参考以下文章

Moment.js 和 Unix 纪元转换

如何在 twig 中显示来自 Unix 时间戳的格式化日期?

moment.js 快捷查询

如何以毫秒为单位获取带有 unix 时间戳的人类可读日期? [复制]

计算两个时间戳之间的差异并获得 unix 时间戳的差异

使用 Moment.js 获取当前的 unixtimestamp