Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get current datetime in JS for a specific timezone

I am working on a platform that has users from all over the world, but certain settings are bound to a predefined timezone datetime.

What does this mean? If a user connects from a different timezone the app should still show him the current time in the predefined timezone regardles from where he logs in. I need to calculate this on the client side with javascript with only the timezone string.

What I would like to do is something like this:

new TimezoneDate('timezone');

and the result should be the current datetime for that timezone.

I know there are JS libs that handle this but I am asking if there is a simple JS solution without using external libs?

like image 879
Ales Maticic Avatar asked Oct 30 '25 15:10

Ales Maticic


2 Answers

Depends on your definition of simple; but not really. Javascript does not have support for timezones out of the box. I would highly recommend Moment Timezone http://momentjs.com/timezone/ since it is very user friendly. I am also in the middle of a project with the same requirements and this library has made my work a lot easier.

Edit: With the library, doing what you want is as easy as:

var timezonedDate = moment.tz('YOUR TZ STRING').toDate();
like image 146
GPicazo Avatar answered Nov 01 '25 04:11

GPicazo


You can try:

var offset = new Date().getTimezoneOffset();

Or to get the difference in hours:

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

Mozilla Reference

The time-zone offset is the difference, in minutes, between UTC and local time. Note that this means that the offset is positive if the local timezone is behind UTC and negative if it is ahead. For example, if your time zone is UTC+10 (Australian Eastern Standard Time), -600 will be returned. Daylight saving time prevents this value from being a constant even for a given locale.

like image 40
Sotiris Kiritsis Avatar answered Nov 01 '25 05:11

Sotiris Kiritsis



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!