javascript - Javascript以小时为单位查找时区的时差
问题描述
我有一个带有以下详细信息的 javascript 对象:
var dateobj = {
date: "2020-12-21 03:31:06.000000",
timezone: "Africa/Abidjan",
timezone_type: 3
}
var date = new Date();
var options = {
timeZone: dateobj.timezone
};
var curr_date = date.toLocaleString('en-US', options)
console.log(curr_date)
//I want this
//diff = curr_date - dateobj.date
我想用同一时区的当前日期时间找到以小时为单位的时差。我知道我可以使用toLocaleString()
函数来获取特定时区的日期时间字符串,但是我怎样才能找到时差呢?上面的代码获取该时区的当前日期时间,我怎样才能找到以小时为单位的时差?
解决方案
一般来说,在 JS 中处理日期时,我通常使用一个名为date-fns
(日期函数)的库。它只是使日期和时间更容易管理。这就是您如何获得以小时为单位的时差date-fns
。
const { differenceInHours } = require("date-fns");
const { zonedTimeToUtc } = require("date-fns-tz");
const timeData1 = {date: "2020-12-21 03:31:06.000000", timezone: "Africa/Abidjan", timezone_type: 3};
const timeData2 = {date: "2020-12-21 03:31:06.000000", timezone: "America/Los_Angeles", timezone_type: 3};
const t1 = zonedTimeToUtc(timeData1.date, timeData1.timezone);
const t2 = zonedTimeToUtc(timeData2.date, timeData2.timezone);
const diff = differenceInHours(t2, t1);
console.log(diff);
// => 8
推荐阅读
- node.js - MongoDB:如何将仅出现在 $project 中的字段相乘?
- javascript - Javascript拆分URL并选择要放置在表格中的字符串
- java - 如何在java中的PriorityBlockingQueue中添加毒丸?
- c# - 多米诺骨牌的数据类型
- git - 具有多个命令的 Git 别名
- delphi - DELPHI - 有没有办法释放在运行时创建的对象而不会出现“访问冲突”?
- python - python - 如何单击带有硒的子菜单中的按钮?
- laravel - 如何在同一个 laravel 队列中一次只运行一项作业?
- python - 从 Mysql 获取价值并传递给 Django
- .net - 缺少授权标头