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格式?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 twig 中显示来自 Unix 时间戳的格式化日期?