Преобразовать ионную дату и время в часы и минуты

Я использую ионный компонент даты и времени, как показано ниже

  <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 часа текущего времени.

теперь требуется, чтобы конечный пользователь добавил еще один дополнительный час через пользовательский интерфейс, после чего я хочу получить этот час и время в местном часовом поясе. Мой код не работает должным образом, как показано ниже:

 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 был просто форматом чч: мм AM / PM. мой приведенный выше код необходимо исправить.

0
0
1 855
2

Ответы 2

Всегда рекомендуется преобразовывать дату в формат UTC time set, поскольку это общепринятый стандарт. Как и для даты ввода, просто преобразуйте дату следующим образом:

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

Теперь, когда вы вводите данные от пользователя для времени доставки (для этого дополнительного часа), проделайте то же самое с этой датой и добавьте этот час в utcDate, а в конце преобразуйте дату UTC в дату по Гринвичу с 5.5, как для IST. .

Надеюсь это поможет:)

  1. npm i --save date-fns

  2. импортировать {формат} из "date-fns" в ваш файл .ts

  3. let example_time = "2019-11-30T14: 42: 30.951 + 08: 00";

  4. формат (новая дата (example_time), «ЧЧ: мм»);

  5. console.log (example_time) => '14: 42 '

Другие вопросы по теме