Форматирование значения времени на 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;
}