使用javascript按时区转换utc日期时间

使用javascript按时区转换utc日期时间,javascript,jquery,angularjs,kendo-ui,Javascript,Jquery,Angularjs,Kendo Ui,我从数据库中获取了utc日期时间。我想按用户时区名称显示此utc日期时间。那么如何使用javascript解决此问题 ?如果您有任何想法,请与我分享这些问题。使用此转换为当地时间 var date = new Date('6/29/2011 4:52:48 PM UTC'); date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)" 其他明智的做法是使用时区偏移量转换为本地时间: function convertUTCDateTo

我从数据库中获取了utc日期时间。我想按用户时区名称显示此utc日期时间。那么如何使用javascript解决此问题
?如果您有任何想法,请与我分享这些问题。

使用此转换为当地时间

var date = new Date('6/29/2011 4:52:48 PM UTC');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"
其他明智的做法是使用时区偏移量转换为本地时间:

function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);

var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();

newDate.setHours(hours - offset);

return newDate;   
}
基于使用转换

convertUTCDateToLocalDate(date).toString();
试一试

演示:

var newYork=moment.tz(“2014-06-01 12:00”,“美国/纽约”);
var losAngeles=newYork.clone().tz(“美国/洛杉矶”);
var london=newYork.clone().tz(“欧洲/伦敦”);
$('#newYork').html(newYork.format());
$('#losAngeles').html(losAngeles.format());
$('#london').html(london.format())

纽约:

洛杉矶:


伦敦:

不清楚是什么问题,因为javascript
Date()
将自动检查时刻时区。如果希望Date()只是用户的时区,则它会更简单,但moment将允许您通过名称指定时区。好的,jason Kennaly和Shishir KUshwaha。我已经尝试过此函数。存在类似于moment(…)的问题.tz不是一个函数..我还下载了'moment-timezone-all-years.min.js',谢谢你的甜蜜回答,但我想通过时区名称转换utc日期时间,如'Asia/Jakarta'。用户只有时区名称和utc日期时间。我只通过用户时区名称转换日期时间,而不是获得时区偏移。如果你想js表示函数将如下所示。。。函数toTimeZone(time,zone){var format='YYYY/MM/DD HH:MM:ss ZZ';返回时刻(time,format).tz(zone.format(format);}好的,我已经像函数toTimeZone(time,zone){var format='MM/DD/yyyyHH:MM:ss ZZ';返回时刻一样尝试了这个函数(时间,格式).tz(区域).format(格式);}var测试=toTimeZone(“2013-11-18 11:55”,“欧洲/巴西”);
var newYork    = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london     = newYork.clone().tz("Europe/London");

newYork.format();    // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format();     // 2014-06-01T17:00:00+01:00