试图将时间转换为EST时区

时间:2014-09-08 12:52:53

标签: javascript

尝试使用以下代码将本地日期时间转换为EST时间并获得EST时间但是它减少了一个小时,例如,如果它是6.00 EST,它显示我5.00 EST。 有谁知道出了什么问题?

var offset = -5.0;
var fromDate = new Date(selectedDate); // selected date is String of date which is set currently
var utcFromTime = fromDate.getTime() + (fromDate.getTimezoneOffset() * 60000);
var effFromDate = new Date(utcFromTime + (3600000 * offset));
alert("final EST :" + effFromDate);

3 个答案:

答案 0 :(得分:-1)

抱歉,我认为您无法使用JavaScript执行此操作,因为它无法处理时区。 您应该使用PHP之类的语言,并使用Ajax将结果返回给JavaScript。

答案 1 :(得分:-1)

因此,使用momentmoment timezone可以执行此操作

//create new moment with local time then update the timezone
var localTimeInMurica = moment().tz("EST");


//display EST time of the local time orgionally passed

//see http://momentjs.com/docs/#/displaying/ for options on displaying the date
console.log(localTimeInMurica.format());

这里有一个小提琴(我在手动而不是通过cdn包括时刻时区,因为我想要获得最新的所有年份)http://fiddle.jshell.net/leighking2/61j008n0/

for EDT

//create new moment with local time then update the timezone
var localTimeInMurica = moment().tz("America/New_York");


//display EST time of the local time orgionally passed

//see http://momentjs.com/docs/#/displaying/ for options on displaying the date
console.log(localTimeInMurica.format());

答案 2 :(得分:-1)

使用此link

var UTC = new Date();
var UTC = UTC.getTime() // Get UTC Timestamp

通过设置时区的小时和分钟

var IST = new Date(date); // Clone UTC Timestamp
IST.setHours(IST.getHours() + 5); // set Hours to 5 hours later
IST.setMinutes(IST.getMinutes() + 30); // set Minutes to be 30 minutes later

或使用moment.js

var dec = moment("2014-12-01T12:00:00Z");
dec = dec.tz('America/New_York');