J'utilise le date
canal pour formater ma date, mais je ne peux tout simplement pas obtenir le format exact que je veux sans solution de contournement. Est-ce que je comprends mal les tuyaux ou n'est-ce pas possible?
//our root app component
import {Component} from 'angular2/core'
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>Hello {{name}}</h2>
<h3>{{date | date: 'ddMMyyyy'}}, should be
{{date | date: 'dd'}}/{{date | date:'MM'}}/{{date | date: 'yyyy'}}</h3>
</div>
`,
directives: []
})
export class App {
constructor() {
this.name = 'Angular2'
this.date = new Date();
}
}
date
pipe a actuellement plusieurs problèmes.Réponses:
Bogue de format de date de canal corrigé dans Angular 2.0.0-rc.2, cette demande de tirage .
Maintenant, nous pouvons faire de la manière conventionnelle:
Exemples:
Version actuelle:
Example Angular 8.x.x
Anciennes versions:
Example Angular 7.x
Example Angular 6.x
Example Angular 4.x
Example Angular 2.x
la source
<input #dob="ngModel" [(ngModel)]="model.dob" [ngClass]="{ 'is-invalid': f.submitted && dob.invalid }" class="form-control" id="dob" name="dob" required type="date" />
Comment puis-je réparer cela ?Importez DatePipe depuis angular / common, puis utilisez le code ci-dessous:
où userdate sera votre chaîne de date. Voyez si cela aide.
Notez les minuscules pour la date et l'année:
ÉDITER
Vous devez passer la
locale
chaîne comme argument à DatePipe, dans le dernier angulaire. J'ai testé en angulaire 4.xPar exemple:
la source
Supplied parameters do not match any signature of call target.
surnew DatePipe()
new DatePipe('en-US');
Vous pouvez y parvenir en utilisant un simple tuyau personnalisé.
L'avantage d'utiliser un canal personnalisé est que, si vous souhaitez mettre à jour le format de date à l'avenir, vous pouvez aller mettre à jour votre canal personnalisé et il reflétera partout.
Exemples de tuyaux personnalisés
la source
J'utilise toujours Moment.js lorsque j'ai besoin d'utiliser des dates pour une raison quelconque.
Essaye ça:
Et dans la vue:
la source
moment
la bibliothèque est trop grande pour un petit travail comme le format!J'utilise cette solution temporaire:
la source
Si quelqu'un regarde avec l'heure et le fuseau horaire, c'est pour vous
ajouter z pour le fuseau horaire à la fin du format de date et d'heure
la source
Angulaire: 8.2.11
Sortie: 9 juin 1973
Sortie: 09/06/1973
Sortie: 09/06/1973 12:00 AM
la source
La seule chose qui a fonctionné pour moi a été inspirée d'ici: https://stackoverflow.com/a/35527407/2310544
Pour jj / MM / aaaa pur, cela a fonctionné pour moi, avec angular 2 beta 16:
la source
Si quelqu'un peut afficher la date et l'heure en AM ou PM en angulaire 6, c'est pour vous.
Production
Options de format prédéfinies
Des exemples sont donnés dans les paramètres régionaux en-US.
Lien de référence
la source
Je pense que c'est parce que les paramètres régionaux sont codés en dur dans le
DatePipe
. Voir ce lien:Et il n'y a aucun moyen de mettre à jour cette locale par configuration pour le moment.
la source
Les canaux de date ne se comportent pas correctement dans Angular 2 avec le navigateur Typescript pour Safari sur MacOS et iOS. J'ai rencontré ce problème récemment. J'ai dû utiliser l'instant js ici pour résoudre le problème. Mentionner ce que j'ai fait en bref ...
Ajoutez le package momentjs npm dans votre projet.
Sous xyz.component.html, (Notez ici que startDateTime est de type chaîne de données)
{{ convertDateToString(objectName.startDateTime) }}
import * as moment from 'moment';
la source
Vous pouvez trouver plus d'informations sur le tube de date ici , comme les formats.
Si vous souhaitez l'utiliser dans votre composant, vous pouvez simplement faire
Maintenant, vous pouvez simplement utiliser sa méthode de transformation, qui sera
la source
Vous devez passer la chaîne de paramètres régionaux comme argument à DatePipe.
Options de format prédéfinies:
ajouter datepipe dans app.component.module.ts
la source
Vous pouvez également utiliser momentjs pour ce genre de choses. Momentjs est le meilleur pour analyser, valider, manipuler et afficher les dates en JavaScript.
J'ai utilisé cette pipe d'Urish, qui fonctionne bien pour moi:
https://github.com/urish/angular2-moment/blob/master/src/DateFormatPipe.ts
Dans le paramètre args, vous pouvez mettre votre format de date comme: "jj / mm / aaaa"
la source
Dans mon cas, j'utilise dans le fichier composant:
Et dans le fichier HTML du composant
Ça fonctionne bien pour moi ;-)
la source