momentjs - MomentJS 将 Unix 转换为本地时区并从现在开始捕获
问题描述
我有一个 unix 时间戳,我试图将其转换为本地时区,然后渲染.fromNow
. 但是我似乎找不到转换为本地时区的最佳方法,并且当前的格式化技术不能与.fromNow
. 有人可以指出我在格式上做错了什么以及如何获取用户的本地时区吗?
Unix 示例:
1541032289
试图:
moment(1541032289).format('YYYY MM DD').fromNow();
错误信息:
TypeError: moment(...).format(...).fromNow is not a function
更新:
替换后.format()
的代码.unix()
代码:
store.zrevrange(zrangeSet, 0, -1, function(err, keys){
var range = [];
for (var i = 0; i < keys.length; i ++ ) {
var keyObj = JSON.parse(keys[i]);
keyObj.timestamp = moment().unix(keyObj.timestamp).fromNow();
range.push(keyObj);
}
console.log(range);
});
新错误:
keyObj.timestamp = moment().unix(keyObj.timestamp).fromNow();
^
TypeError: moment(...).unix(...).fromNow is not a function
解决方案
您的代码中有两个问题。首先,在您应该在时刻对象上format
调用时返回一个字符串。fromNow()
因此,您可以简单地删除format('YYYY MM DD')
.
第二个问题是您必须使用moment.unix(Number)
而不是moment(Number)
.
正如文档所述:
要从 Unix 时间戳(自 Unix 纪元以来的秒数)创建时刻,请使用
moment.unix(Number)
.
这是一个现场样本:
console.log( moment.unix(1541032289).fromNow() );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
推荐阅读
- php - 如何在php laravel中获取列为空和条件
- azure-devops - 构建和 Visual Studio 中的 NuGet 包还原
- android - 重用布局时,Android自动填充多次输入相同的信息
- android - 在带有 Kotlin 的 Android 中使用 AutocompleteEditText 和 PlacesAutocomplete Api
- swiftui - 如何在 SwiftUI 按钮中使用布尔值?
- r - 模式匹配和替换——一个或多个相同的模式/字符
- vue.js - 渲染 HTML 中的 V-for 循环
- sql - 子查询返回多个值
- django - IntegrityError:唯一约束失败:usermanager_userprofile.email_address
- reactjs - ReactJs:如何在箭头函数中使用条件