我有两种类型的时区格式
我的要求是,每当添加任何时区时,我都会获得正确的日期时间。
我使用的代码
var timezone= '(GMT-05:00) America/New_York';;
var getTimezoneDate=function(offset) {
var currentDate = new Date();
var utcTime = currentDate.getTime() + (currentDate.getTimezoneOffset() * 60000);
var tzDate = new Date(utcTime + (3600000*offset));
return tzDate;
};
var getOffset=function(tz){
var offset='';
var dthr=tz.slice(4, 7);
var dtmi=tz.slice(8, 10);
if(dtmi=='30')
{
offset=dthr+'.5';
}
else
{
offset=dthr;
}
return offset;
};
var tzoffset=getOffset(timezone);
var tzdate=getTimezoneDate(tzoffset);
console.log(tzdate);
输出:- 2018年8月13日星期一03:35:34 GMT + 0530(印度标准时间)
输出时间比当前时间晚1小时,并且使用系统GMT。据我所知,这是DST问题。如何使用DST获得正确的时间。
必填输出:- 2018年8月13日星期一04:35:34 GMT-4
我也在尝试
var userDate=new Date(new Date().toLocaleString("en-US", {timeZone: 'America/New_York'}));
但是旧浏览器不支持。
(无需外部库)