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