Gene Gene -4 years ago 124
Javascript Question

Convert Epoch time to human readable with specific timezone

To convert epoch dateTime to human readable , using a simple

new date(1495159447834)
will suffice.

The problem I'm encountering now is that for my hybrid application, if the user set the time-zone in his phone date time setting to lets say GMT +12:00 ,the human readable dateTime will be different from what I would want the user to have and I would want him/her to follow the server timezone.

Thus , how would I convert the epoch number to a specific given timezone in a human readable format.

I have tried example like:

var test= new Date('1495159447834 GMT+0800').toString();

and it returns me an Invalid Date.

If possible, I would want this without any libraries. I have looked through the answers here and I believe that I could not find any answers I'm looking for. If there is any previously answered question with the same topic, do let me know and I will close this question!

Answer Source

You can use offset to convert your current datetime to a specific timezone.

function convertEpochToSpecificTimezone(offset){
    var d = new Date(1495159447834);
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);  //This converts to UTC 00:00
    var nd = new Date(utc + (3600000*offset));
    return nd.toLocaleString();

The offset will be your specific timezone. Example: GMT +03:00, your offset is +3. If GMT -10:00, offset is -10

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download