javascript - moment().fromNow() 忽略 UTC
问题描述
我已经看到了有关此问题的多个问题,而这篇文章并没有为我澄清。
我必须增加对 UTC 功能的混淆表达。对 moment.utc() 最直观的期望是它会返回一个 Moment 对象,以 UTC 时间表示现在的日期/时间。但根据这个讨论,情况并非如此,它只是设置了标志。目前尚不清楚该标志的作用。文档中没有提到这些,这使得它严重不足。请在您的待办事项列表中添加对该主题的说明以及示例。谢谢你。
我从查询中获得 ISO 8601 时间,并希望根据数据网格中的用户配置显示不同的结果。
我从文档和stackoverflow都尝试了不同的方法,但似乎都没有给出预期的结果,即来自Now()的UTC时间,而是显示来自Now()的本地时间。在控制台中,值似乎正确,直到 moment.fromNow()
// Changes value on item["StartTime"] based on user config before it pushed.
else {
let time = item["StartTime"] // Outputs ISO 8601
console.log(time) // Output 2021-02-16T12:40:56.790Z
switch (true) {
// This case is the problem
case (userConfig.general.dateFormat == "From now" &&
userConfig.general.useLocal == false):
var utcDate = new Date(time).toUTCString();
// output Tue, 16 Feb 2021 12:40:56 GMT
utcDate = moment.utc(utcDate).fromNow();
// output In an hour
// Im in UTC+1
item["StartTime"] = utcDate
break;
case (userConfig.general.dateFormat == "From now" &&
userConfig.general.useLocal == true):
time = new Date(time) // Outputs date
object defaults to browser timezone
time = moment(time).locale(navigator.language).fromNow()
time = time.toLocaleString(navigator.language)
item["StartTime"] = time
break;
case (userConfig.general.dateFormat == "Timestamp" && userConfig.general.useLocal == true):
time = new Date(time) // Outputs date object defaults to browser timezone
time = time.toLocaleString(navigator.language)
item["StartTime"] = time
break;
case (userConfig.general.dateFormat == "Timestamp" && userConfig.general.useLocal == false):
let date = moment(time);
let dateComponent = date.utc().format('YYYY-MM-DD');
let timeComponent = date.utc().format('HH:mm:ss');
item["StartTime"] = dateComponent + " " + timeComponent
break;
}
解决方案
推荐阅读
- python - 如何使用 Selenium 和 Python 查找与用户输入相关的元素?
- wordpress - WordPress:“全部”过滤器在管理员列表页面上不起作用?
- c++ - 如何声明已在静态库中定义的类?
- php - 具有数据库查询的多级循环
- python - 想要一个表现得像 ABC 但也是元类的类
- pyspark - PySpark / 计算出现次数并使用 UDF 创建新列
- reporting-services - SSRS 报告数据在下载为 pdf 时向上移动某些记录
- javascript - 如何使用 Jest 单元测试检查正在运行的函数中间的预期日志?
- postgresql - 如何知道函数的哪个参数是PostgreSQL表中的列?
- swift - AKAmplitudeTracker 幅度使用 audioKit 获得 0.0