代码之家  ›  专栏  ›  技术社区  ›  Vik

将日期时间转换为小时和分钟

  •  0
  • Vik  · 技术社区  · 7 年前

      <ion-item >
                        <ion-label>Time:</ion-label>
                        <ion-datetime displayFormat="h:mm A" pickerFormat="h mm A" [(ngModel)]="localEstDelTime"></ion-datetime>
                  </ion-item>
    

    在ionViewDidLoad上,我将localEstDelTime的值设置为:

    var d = new Date()
     var dt = d.setTime(d.getTime() + (5.5 + 2)*60*60*1000)
    this.localEstDelTime = dt.toISOString()
    

    基本上5.5小时已经被添加到了印度时区(GMT+5.5),对于这个用例,时间应该加上当前时间的2小时。

    现在,要求是让我们假设最终用户通过UI增加了一个额外的小时,然后我想得到本地时区的小时和时间。我的代码无法正常工作,如下所示:

     var storeEstDelTime =  Date.parse(this.localEstDelTime)
     var date = new Date(storeEstDelTime)
     var hours = date.getHours() + 5.5
     var minutes = date.getMinutes()
    
            var ampm = Number(hours) >= 12 ? 'PM' : 'AM';
            hours = hours % 12;
            hours = hours ? hours : 12; // the hour ’0′ should be ’12′
            var minutesStr = Number(minutes) < 10 ? '0'+ minutes : minutes;
    
            estDeliveryTime = hours + ':' + minutesStr + ' ' + ampm;
    

    所以我需要estDeliveryTime只是hh:mm AM/PM格式。我上面的代码需要修复。

    1 回复  |  直到 7 年前
        1
  •  0
  •   saberprashant    7 年前

    把你的约会对象改成朋友总是个好主意 UTC time set 一直以来,这是一个共同的标准。对于输入日期,只需将日期转换为:

    var now = new Date(),
        utcDate = new Date(
            now.getUTCFullYear(),
            now.getUTCMonth(),
            now.getUTCDate(),
            now.getUTCHours(),
            now.getUTCMinutes(), 
            now.getUTCSeconds()
        );
    

    utcDate 最后,将UTC日期转换为GMT日期,IST为5.5。

    希望这有帮助:)