2015-08-03 101 views
1

我正在AngularJs中制作一个应用程序。 但问题是数据库是由别人控制的。 他们节省时间在数据库中作为ISD(印度标准)。 当我打电话给web服务来获取这些日期以字符串形式来这样YYYY/MM/DD HH/MM/SS示例2015/02/23 23/59/01。 我有一个日期列表,我必须使用ng-repeat像这样显示。从本地时区到UTC然后到本地的转换日期

<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转换为UTC,然后获取时区和增加或减去分钟,并显示给用户的用户界面。

回答

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");

此功能需要从数据库中输入。将其转换为时间戳并从中减去5.30小时(这是UTC和IST之间的差异)。最后一步是将其转换为本地。

+0

Date.parse(date)导致NaN。 – RHUL

+0

这种格式的输入是? '2015/02/23 23/59/01'。你描述的格式。 – Mouser

+0

yes ... date = date [0] +“T”+ date [1] .replace(/ \ // g,“:”)+“+0000”;这一行正常工作。 。 – RHUL

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(); 
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); 

维护 “ - ” 日期之间 “:” 之间的时间是非常重要的。

相关问题