Je reçois l'heure de l'API au format 13:45:56 et je veux l'afficher comme 13:45 (HH: MM). Quelqu'un peut-il m'aider? J'ai essayé d'utiliser le tuyau Date avec la balise de liaison, mais cela génère une erreur comme
InvalidPipeArgument: '23:00:00' for pipe 'DatePipe'
5 Réponses :
HH - Heure, 24 heures, zéro non significatif 00 ... 23 h - Heure, 12 heures 1 ... 12 hh - Heure, 12 heures, zéro non significatif 01 ... 12
m - Minute 1 ... 59 mm - Minute, zéro non significatif 01 ... 59
Vous pouvez donc simplement écrire HH: mm
EX:
Non, il ne s'affiche pas. Je viens de le fournir, mais il fonctionne comme une boîte de saisie
Veuillez vérifier le lien stackblitz fourni dans la section réponse. Merci, appréciez vos efforts.
Le DatePipe
d'Angular attend une date selon la documentation :
.... un objet Date, un nombre (millisecondes depuis l'époque UTC) ou une chaîne ISO.
Vous devez donc convertir votre temps de l'API vers l'un de ceux-ci si vous souhaitez le formater via Angular.
Btw, n'est-il pas possible de supprimer simplement la deuxième partie de votre chaîne de temps que vous obtenez de l'API?
Vous pouvez également le lier de la manière suivante:
<span class="dt-time">{{ entity.created_at | utcTimeConversion: utcOffset : "MMM DD YYYY"}}</span>
Ici, je prends également en compte le décalage UTC à côté du format, cela garantirait que l'appareil mobile convertit l'heure comme selon le fuseau horaire de l'appareil ..
Cheers!
merci les gars pour vos précieux commentaires. Appréciant vos efforts. Je l'ai réparé en utilisant un tuyau. ce sera un peu complexe, mais vraiment utile pour une application dans plusieurs requêtes. Ajout d'une requête de canal ici avec
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 (''); } }
'13: 45: 56 ', c'est au format chaîne, non?
oui, c'est au format chaîne