如何将GMT时间转换为用户的本地时间Javascript

时间:2015-05-21 12:15:04

标签: javascript date gmt

我试图将GMT时间转换为用户的当地时间。

我从服务器获取的时间格式为:2015-05-20 18:00:00 GMT

我只想展示这样的小时和分钟:20:00

我想使用这个看似非常简单的解决方案,但我不知道如何使我的格式与此相同

var date = new Date('5/21/2015 18:52:48');
date.toString();

3 个答案:

答案 0 :(得分:1)

  

我从服务器获取的时间格式为:2015-05-20 18:00:00 GMT

如果是这样,您可以轻松地将其按照ES5及更高版本浏览器的格式are supposed to support,例如2015-05-20T18:00:00Z

var yourString = "2015-05-20 18:00:00";
var dt = new Date(yourString.replace(' ', 'T') + "Z");
var hours = dt.getHours(); // Will be local time
var minutes = dt.getMinutes(); // Will be local time

然后,只需将您获得的hoursminutes值格式化为所需的hh:mm字符串。

注意:字符串末尾的Z很重要。不幸的是,如果被解析的字符串没有时区,那么ES5规范在它(它们在ES6中修复它)方面会有很大的错误。有些引擎做的是规范所说的,有些做了应该所说的那些(并且ES6规范将会说),不幸的是,这意味着现在,你不能相信如果字符串上没有时区,浏览器会做什么。

答案 1 :(得分:-1)

我只需添加" UTC"

 var date = new Date('2015-05-20 15:00:00 UTC');
alert(date.getHours());
    alert(date.getMinutes());

答案 2 :(得分:-1)

浏览器中的新Date()返回用户时区(机器时区)中的日期对象。 只需要将ISO格式的GMT日期传递给日期功能。因此它会将其视为gmt时间。

var date = new Date('2015-05-21T18:52:48Z');
date.toString();//You will get here date string in local format

您也可以使用UTC作为UTC,GMT是same

这是前。

var date = new Date('2015-05-21 18:52:48UTC'); //You can use GMT instead UTC
date.toString();//You will get here date string in local format

第一种方法更可取,因为第二种方法不适用于Internet Explorer