我正在以13:45:56的格式从API获取时间,我想将其显示为13:45(HH:MM)。谁能帮我?我尝试将Date管道与绑定标签一起使用,但是它将引发错误
InvalidPipeArgument: '23:00:00' for pipe 'DatePipe'
答案 0 :(得分:2)
谢谢你们的宝贵意见。感谢您的努力。我用管道固定了。它看起来有些复杂,但对于应用于多个查询确实很有用。 在此处添加管道查询
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'datepipe' })
export class DateSet implements PipeTransform {
transform(timeString: string ) {
let time;
time = timeString.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [timeString];
if (time.length > 1) { // If time format correct
time = time.slice (1); // Remove full string match value
time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM
time[3] = ' ';
time[4] = ' ';
time[0] = +time[0] % 12 || 12; // Adjust hours
}
return time.join ('');
}
}
答案 1 :(得分:1)
您也可以通过以下方式绑定它:
http://localhost/#access_token=TOKEN&token_type=Bearer&expires_in=604800&scope=identify
在这里,我还考虑了格式旁边的UTC偏移量,这将确保移动设备按照设备的时区转换时间。
干杯!
答案 2 :(得分:0)
HH-小时,24小时,前导零00 ... 23 h-小时,12小时1 ... 12 hh-小时,12小时,前导零01 ... 12
m-分钟1 ... 59 mm-分钟,前导零01 ... 59
所以您只需写HH:mm
EX:
<ion-datetime display-format="HH:mm"></ion-datetime>
答案 3 :(得分:0)
Angular的DatePipe
期望根据docs的日期:
.... a日期对象,数字(自UTC时代以来的毫秒数)或ISO字符串。
因此,如果要通过Angular格式化时间,则需要将时间从API转换为其中之一。
顺便说一句,是否只能删除从API获得的时间字符串的第二部分?
答案 4 :(得分:0)
我为您的解决方案创建了stackblitz。该项目可能会为您提供帮助。