我有一个项目,如果将结束日期设置为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;


我试图以其他方式调整代码,但无法正常工作。我知道之前也曾提出过类似的问题,但即使花费了几个小时,仍然无法使它正常工作。也许我缺少一些琐碎的东西。一些帮助将不胜感激。 :)

最佳答案

我已经解决了。我的代码和解释如下

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(Eastern Standard Time)。

现在我需要以格林尼治标准时间显示时间,因此在第二行中使用了toUTCString()方法并执行console.log(c)我得到:格林尼治标准时间2018年2月12日星期一00:00:00

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

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


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

关于javascript - 如何使用javascript将毫秒转换为gmt时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48411161/

10-12 12:40
查看更多