Форматирование значения времени на Ionic 3

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

Мне нужно иметь возможность удалить секунды до значений показанных часов, например:

1:45:00 изменить на 13:45 или 13:45 м.

4 ответа

Используйте Moment.js . Здесь вы можете конвертировать в любой формат времени

1 - установить через NPM:

npm install moment -S

2 - Импорт в ваш файл Typescript:

import moment from 'moment';

3 - Используйте в своем файле Typescript:

let dateString = "22-04-2017"; //whatever date string u have
let dateObject = moment(dateString, "DD-MM-YYYY").toDate();

Предполагая, что ваша дата является экземпляром Date, вы можете использовать встроенную угловую трубу даты с предопределенным форматом. shortTime или пользовательский формат:

<p> {{date | date:'shortTime'}} </p>

<p> {{date | date:'hh:mm'}} </p>

shortTime эквивалентно 'h:mm a' и даст результаты, как 9:03 утра.

Пользовательский формат 'hh:mm' будет давать результаты, как 09:03.


Если ваша дата - просто строка, вы можете использовать встроенную трубу срезов, чтобы удалить части, от которых вы хотите избавиться:

<p> {{"1:45:00" | slice:0:4}} </p>

Который выведет 1:45.

Также смотрите этот Stackblitz для различных вариантов.

В любом случае, я рекомендую использовать реальные объекты Date или объекты Moment.js поверх пустых строк, это значительно упрощает задачу, особенно после того, как вы начнете сравнивать даты или вычислять с датами.

Если это всегда формат, вы можете манипулировать строкой с помощью JavaScript/TypeScript.

  myTime = '1:45:00'

  showTime() {
    var result = 
    this.myTime.substring(
      0, (this.myTime.length - 3) )+ ' pm';
    console.log(result);
  }

Если у вас есть более сложные случаи, вы можете использовать библиотеку, такую ​​как Momentjs. https://momentjs.com/

Здесь вы можете найти то, что вам нужно в документах. https://momentjs.com/docs/

      you can use a custom pipe 

transform(timeString: string) {
    let time = timeString.slice(0, 5);
    let current_hour = timeString.slice(0, 2);
    if (parseInt(current_hour) > 12) {
      time = time + " PM";
    } else {
      time = time + " AM";
    }
    return time;
  }
Другие вопросы по тегам