如何使用javascript将毫秒转换为gmt时间

时间:2018-01-23 21:31:03

标签: javascript angularjs

我有一个项目,如果结束日期设置为2月12日(可以设置为任何将来的日期),则从API响应中获取以下内容。

项目:{endDateTime:“1518393600000”}

对于UTC时间和日期,此回复对应于2018年2月12日00:00:00

当地时间和日期,回复对应于Sun Feb 11 2018 19:00:00(GMT - 05:00)

在用户界面上,我需要将结束日期显示为2018年2月12日,但日期将转换为本地日期和时区,并将2月11日显示为结束日期。我的代码如下:

var d = new Date();  
var c = d.setTime(parseInt($scope.project.endDateTime));  
$scope.endDateTime = c;

在html中

<div> {{endDateTime}} </div>  

我尝试按以下方式修改代码,但它不起作用。

 var d = new Date($scope.project.endDateTime);
 var c = d.getUTCDate();
 $scope.endDateTime = c;  

我尝试以其他方式调整代码但无法使其工作。我知道之前已经提出了类似的问题,但即使花了几个小时,仍然无法让它工作。也许我错过了一些非常微不足道的事情。一些帮助将不胜感激。 :)

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案。我的代码和解释如下

var d = new Date(parseInt($scope.project.endDateTime));
var c = c.toUTCString();
var endDate= c.split(" ");
$scope.endDateTime = endDate[2] + ' ' + endDate[1] + ',' + ' ' + endDate[3];  

html是

<div> {{endDateTime}}</div>  

我需要解析从API响应中返回的字符串。错过了这部分,正确的方法是toUTCString(),而不是getUTCDate()

基本上如果结束日期设置为2月12日(在这种情况下,它是动态的),API会返回

project: {endDateTime:"1518393600000"}

代码的第一行解析字符串,如果我执行console.log(d),我会得到: Sun Feb 11 2018 19:00:00 GMT-0500(东部标准时间)

现在我需要在GMT中显示时间,以便在第二行使用toUTCString()方法并执行console.log(c)我得到:周一,2018年2月12日00:00:00 GMT

要求是在UI上显示日期为 2018年2月12日,所以我在第三行分割字符串,如果我console.log(endDate)我得到

["Mon,", "12", "Feb", "2018", "00:00:00", "GMT"]

从第三行的输出中,很容易显示所需的日期格式。希望这会有所帮助。