2017-10-02 3 views
0
<form> 
<p-calendar [(ngModel)]="report.incidentTime" [showTime]="true" [ngModelOptions]="{standalone: true}" [maxDate]="maxDateValue" 
           (ngModelChange)="validateTime($event)"></p-calendar> 

    <button type="button" class="btn btn-primary ripple" (click)="saveReport()" >Save</button> 

</form> 

Ici, le calendrier primeNg est utilisé pour l'affichage du calendrier.Valeurs de temps différentes pour le même champ

saveReport() { 
     console.log("Inside save"); 
     this.validateFields(); 

     let temp = this.report; 
     console.log("Time : "+this.report.incidentTime); 
     console.log("Object : "+JSON.stringify(this.report)); 

} 

incidentTime: Date;, est atype of Date.

Time: Mon Oct 02 2017 09:34:39 GMT+0400 (Arabian Standard Time) 
Object : {"incidentTime":"2017-10-02T05:34:39.000Z","reportingType":"I"} 

Ici, deux sorties donnent un temps différent. Pourquoi est-ce ? Comment puis-je obtenir la même heure dans Objet également. plutôt que de donner 4 heures de moins.

+2

est-ce que c'est juste le fait que l'un se trouve dans le fuseau horaire local alors que l'autre est en GMT? la différence de temps semble correcte – toskv

+0

Dois-je ajouter le fuseau horaire après et calculer l'heure actuelle? – user630209

Répondre

0

C'est la même date, c'est juste que le composant p-calender le convertit en UTC à partir de GMT + 4.

Vous pouvez contrôler ce comportement avec l'attribut utc.

Vous pouvez voir la documentation here.

+0

Essayé cette solution, déjà vu cet attribut dans doc, il n'a aucun effet. Prime ng version 2.0.0 – user630209

+0

peut-être c'est à cause de ce problème? https://github.com/primefaces/primeng/issues/3611 – toskv