javascript - 从所选时区到 UTC 的日期时间转换
问题描述
我开发了一个页面,用户可以在其中根据他们在过滤器中的选择来过滤记录。日期时间选择器允许用户选择特定的日期时间,下拉菜单允许用户选择他们希望将所选日期转换为 UTC 的时区。
例如,在我的计算机上,时区设置为 Asia/Karachi,其偏移量为 +5 UTC。但我想从下拉列表中选择 Europe/Prague 并选择 09/14/2021 3.30pm 作为日期时间。时间应转换为下午 1.20,因为欧洲/布拉格使用以下代码与 UTC 有 +2 的时间偏移。
var ddate = new Date(date.toLocaleString('en-US', {
timeZone: 'Europe/Prague'
}));
但是,这会产生 12.30 PM 作为时间。显然它正在从亚洲/卡拉奇(我的电脑时区)转换为欧洲/布拉格。但我希望根据用户从可用时区下拉列表中选择的时区将所选日期时间转换为 UTC。有没有可能的解决方案?我已经尝试了很多研究和编码,但还没有找到任何东西。
解决方案
您是否尝试过时刻和时刻时区?也许是这样的:
import moment from "moment";
const myDate = "09/14/2021 3:30 PM";
const myTimeZone = "Europe/Prague";
let convertedTime = moment.tz(myDate, time_zone).format();
您可以将格式设置为("HH:mm A")
推荐阅读
- eclipse - 二郎。有人可以帮我弄清楚为什么在我尝试运行程序时会抛出这个错误吗?
- email - 当电子邮件被标记为垃圾邮件时如何通过触发器/webhook 进行检测
- javascript - 我可以添加状态属性值吗?
- javascript - 在 React 中更改另一个组件状态的正确方法是什么
- python - 如何在 Python 中将两个列表的元素合并到同一索引处?
- java - 如何使用 Mockito 3 模拟 JtaTransactionManager?
- sql - “TRUNCATE”处或附近的语法错误 - Aurora Postgres 10.12
- c - C 中的 gets() 函数不输入我正在使用 code::blocks
- assembly - 从 16 位实模式切换到 32 位保护模式的问题
- jquery - Oracle Apex - 使选项卡区域“粘性”