我正在AngularJs中创建一个应用程序。 但问题是数据库是由其他人控制的。 它们将数据库中的时间节省为ISD(印度标准)。 当我打电话给webservices来获取这些日期时,它会以字符串形式出现,例如YYYY / MM / DD HH / MM / SS示例2015/02/23 23/59/01。 我有一个日期列表,我必须使用像这样的ng-repeat显示。
<ion-item ng-repeat="item in MeIdeaList | orderBy:'-CreatedDate'" style="background-color:rgb(25, 26, 0);" ng-click="ShowIdeaDetails(item.Id)">
<div class="row">
<div class="col col-80" style="color:white">
<p> {{item.Title}}</p>
</div>
<div class="col col-20" style="color:red">
<b>{{item.Status}}</b>
</div>
</div>
<div class="row">
<div class="col col-70" style="color:white">
{{item.CreatedDate}}
</div>
<div class="col col-30">
<i class="icon ion-chevron-right icon-accessory" style="float:right;color:white"></i>
</div>
</div>
</ion-item>
现在我想将此日期显示为用户访问数据的本地时间。 就像我在美国一样,日期将来自数据库仅作为ISD。如何将此ISD转换为UTC然后获取时区并添加或减去分钟并在UI中向用户显示。
答案 0 :(得分:0)
function setDateLocal(input)
{
var date = input.split(" "); //remember input needs to be as you described.
date = date[0] + "T" + date[1].replace(/\//g, ":") + "+0000";
var ist = 19800000; //time zone is IST, which is 5.30 from UTC in milliseconds
var utcDate = new Date(Date.parse(date)-ist).toUTCString();
return new Date(Date.parse(utcDate));
}
document.body.innerHTML += setDateLocal("2015/02/23 23/59/01");
&#13;
此函数将从数据库中获取输入。将其转换为时间戳并从中减去5.30小时(这是UTC和IST之间的差异)。最后一步是将其转换为本地。
答案 1 :(得分:0)
您也可以使用moment.js将日期从本地时间转换为utc,反之亦然。
moment('07-18-2013', 'MM-DD-YYYY').utc().format("YYYY-MM-DD HH:mm")
moment.utc('2014-02-19 05:24:32 AM').toDate();
答案 2 :(得分:0)
var date = input.split(" ");
date = date[0] + "T" + date[1].replace(/\//g, ":") + "+00"+":"+"00";
date=date.replace("/","-");
date=date.replace("/","-");
alert(date);
var ist = 19800000; //time zone is IST, which is 5.30 from UTC in milliseconds
var utcDate = new Date(Date.parse(date)-ist).toUTCString();
alert(utcDate);
在日期之间维持“ - ”和时间之间的“:”非常重要。