我在使用Firefox转换时区时遇到问题,除Firefox显示以下内容外,所有其他浏览器均按预期工作:
RangeError:DateTimeFormat()中的时区无效:AMERICA / CHICAGO
这是我的函数,它将时间从任何时区(在这种情况下为芝加哥)转换为东部/纽约(服务器时区),这将返回小时:分钟。
dateWithTimeZone = (timeZone1, year, month, day, hour, minute, second) => {
var date = new Date(Date.UTC(year, month, day, hour, minute, second));
var utcDate = new Date(date.toLocaleString("en-US", { timeZone: "UTC" }));
var tzDate = new Date(date.toLocaleString("en-US", { timeZone: timeZone1 }));
var offset = utcDate.getTime() - tzDate.getTime();
date.setTime( date.getTime() + offset );
var time1 = "00:00";
time1 = date.toLocaleString().split(', ')[1];
return time1;
};
//dateWithTimeZone("America/Chicago",2020,4,21,09,30,0)) );
此返回10:30:00 AM
请帮助!
我使用矩时区找到了答案。