2016-01-13 36 views
1

我已经从数据库获取utc datetime。我想通过用户时区名称显示此utc datetime。那么我该如何使用javascript 解决此问题?如果您有任何想法,请与我分享这个问题。使用javascript转换utc datetime by timezoName

+0

还不清楚的是,因为JavaScript的'日期是什么问题()'都已经做自动 – charlietfl

+0

退房时刻,时区http://momentjs.com/timezone/。如果您希望Date()只是用户的时区,Date()会更容易,但是时刻可让您按名称指定时区。 –

+0

http://stackoverflow.com/questions/10087819/convert-date-to-another-timezone-in-javascript –

回答

1

TRY Moment Timezone

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 

DEMO:

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').html(newYork.format()); 
 
$('#losAngeles').html(losAngeles.format()); 
 
$('#london').html(london.format());
<script src="http://momentjs.com/downloads/moment-with-locales.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://momentjs.com/downloads/moment-timezone-with-data.min.js"></script> 
 

 
<p><strong>newYork:</strong> <span id="newYork"></span></p> 
 
<p><strong>losAngeles:</strong> <span id="losAngeles"></span></p> 
 
<p><strong>london:</strong> <span id="london"></span></p>

0

使用它来转换为当地时间。

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(); 
+0

感谢您的甜蜜回答,但我想通过timezoneName像'Asia/Jakarta'User转换utc datetime。 TimezoneName和utc dateTime only.I已转换日期时间由用户TimeZone名称只有不getTimezoneOffset。 – Sundar

+0

使用moment.js与时刻 - 时区。 – Thangadurai

+0

如果你要去哟moment.js意味着函数将是这样的... function toTimeZone(time,zone)var format ='YYYY/MM/DD HH:mm:ss ZZ'; return moment(time,format).tz(zone).format(format); } – Thangadurai