我需要找到格式化时间的方法,我尝试过用角管,但这适用于日期类型值。
我需要能够将秒数删除为所示小时数的值,例如:
1:45:00更改为下午1:45或下午1:45。 M。
答案 0 :(得分:2)
使用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();
答案 1 :(得分:0)
如果始终都是这种格式,则可以使用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/#/parsing/string-format/
答案 2 :(得分:0)
假设您的日期是Date的实例,则可以使用预定义格式shortTime
或自定义格式的内置angular date pipe:
<p> {{date | date:'shortTime'}} </p>
<p> {{date | date:'hh:mm'}} </p>
shortTime
等效于'h:mm a'
,并会产生类似上午9:03的结果。
自定义格式'hh:mm'
将产生类似于09:03的结果。
如果您的日期只是一个字符串,则可以使用内置的slice pipe删除要删除的部分:
<p> {{"1:45:00" | slice:0:4}} </p>
哪个将输出1:45。
另请参见此Stackblitz。
无论如何,我还是建议在裸字符串上使用真实的Date对象或Moment.js objects,这使事情变得容易得多,尤其是当您开始比较日期或使用日期进行计算时。
答案 3 :(得分:0)
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;
}