如何将GMT时间转换为当地时间?

时间:2016-12-21 07:53:20

标签: javascript datetime

在我的应用程序中,我正在获取GMT时间,我想将其转换为Local。 例如

var dateTime = "10:18:00"; //this am getting as GMT
//these below what i want hour and minute separated with locale time zone 
var hour = '15';
var minute = '48';

我想将其转换为本地,即如果它是印度,那么IST或任何其他国家,那么该国家的标准时间(地区时间)。怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用localHour获取getTimezoneOffset()/60。这是一种非常黑客的方式,因为你没有GMT的整个Date对象。



var dateTime = "10:18:00"; // GMT
var hour = dateTime.split(':')[0];
var minute = dateTime.split(':')[1];

var date = new Date(); // UTC
var localHour = hour - date.getTimezoneOffset()/60;
var localMinute = (localHour%1) * 60;

localHour = Math.floor(localHour);
localMinute += parseInt(minute);
if (localMinute >= 60) {
    localHour += Math.floor(localMinute/60);
    localMinute %= 60;
}

localHour %= 24;

console.log('local hour:', localHour);
console.log('local minute:', localMinute);