1

I have get utc datetime from database.I want to display this utc datetime by user timezone name.So how can i solved this problems using javascript ?If you have any idea please share with me this problems.

Sundar
  • 142
  • 1
  • 15
  • not clear what issue is since javascript `Date()` will already do that automatically – charlietfl Jan 13 '16 at 05:09
  • Check out moment-timezone http://momentjs.com/timezone/. Date() is easier if you want it to just be the user's timezone, but moment will let you specify the timezone by name. – Jason Kennaly Jan 13 '16 at 05:09
  • http://stackoverflow.com/questions/10087819/convert-date-to-another-timezone-in-javascript – Shishir Kushwaha Jan 13 '16 at 05:21
  • Ok jason Kennaly and Shishir KUshwaha .I have try this function.There is some issue like that moment(...).tz is not a function..I also download 'moment-timezone-all-years.min.js ' – Sundar Jan 13 '16 at 05:30

2 Answers2

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>
vsogrimen
  • 456
  • 2
  • 7
0

Use this to convert to local time.

var date = new Date('6/29/2011 4:52:48 PM UTC');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"

Other wise use timezone offset to convert to local time:

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;   
}

based on use convert

convertUTCDateToLocalDate(date).toString();
Thangadurai
  • 524
  • 1
  • 9
  • 20
  • Thanks for your sweet answer but I want to convert utc datetime by timezoneName like 'Asia/Jakarta'.User have TimezoneName and utc dateTime only.I have convert datetime by user TimeZone name only not getTimezoneOffset. – Sundar Jan 13 '16 at 05:23
  • Use moment.js with moment-timezone. – Thangadurai Jan 13 '16 at 05:33
  • If you are going yo moment.js means function will be like this... function toTimeZone(time, zone) { var format = 'YYYY/MM/DD HH:mm:ss ZZ'; return moment(time, format).tz(zone).format(format); } – Thangadurai Jan 13 '16 at 05:34
  • ok i have try this function like that function toTimeZone(time, zone) { var format = 'MM/dd/yyyyHH:mm:ss ZZ'; return moment(time, format).tz(zone).format(format); } var test = toTimeZone("2013-11-18 11:55", "Europe/Busingen"); – Sundar Jan 13 '16 at 05:40