2017-09-06 2 views
2

J'essaie d'obtenir une date pour les vols de l'utilisateur et la datepicker définit toujours la date comme objet datetime avec le fuseau horaire de l'utilisateur, ce qui entraîne une date erronée envoyée au serveur. a essayé d'utiliser ng-model-options="{ timezone: 'utc' }"Angulaire Matériel Datepicker Timezone ignorer?

mais l'utilisateur voit la mauvaise date après avoir choisi la date (la date affichée comme jour avant que l'utilisateur a choisi).

Comment puis-je dire à datepicker d'ignorer complètement timezone - si ce n'est pas possible, que puis-je faire sur FE/BE pour convertir cette date en date autre que le fuseau horaire?

Je sais que je peux le convertir en Posix sur FE mais une fois que je le fais le datepicker crie qu'il a besoin d'objet de date.

Merci à l'avance ...

+0

Jetez un oeil à cette bibliothèque: https://momentjs.com/ il est utilisé pour gérer les dates dans JS (vous pouvez utiliser dans FE et dans BE avec node), voir le doc api, vous pouvez convertir les fuseaux horaires et tout ce que vous voulez, j'espère que cela vous sera utile – Kalamarico

Répondre

0

J'ai eu exactement le même problème et je nous ont fini en utilisant ce code

Date.prototype.toJSON = function() { 
    var timezoneOffsetInHours = -(this.getTimezoneOffset()/60); //UTC minus local time 
    var sign = timezoneOffsetInHours >= 0 ? '+' : '-'; 
    var leadingZero = (timezoneOffsetInHours < 10) ? '0' : ''; 

    //It's a bit unfortunate that we need to construct a new Date instance 
    //(we don't want _this_ Date instance to be modified) 
    var correctedDate = new Date(this.getFullYear(), this.getMonth(), 
    this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), 
    this.getMilliseconds()); 
    correctedDate.setHours(this.getHours() + timezoneOffsetInHours); 
    var iso = correctedDate.toISOString().replace('Z', ''); 

    return iso + sign + leadingZero + Math.abs(timezoneOffsetInHours).toString() + ':00'; 
} 

son de cette autre question SO How to JSON stringify a javascript Date and preserve timezone