2016-07-29 19 views
3

Moment.js rate Zeitzone lädt temporär UTC und wechselt dann in die richtige Zeitzone.Moment.js rate Zeitzone lädt vorübergehend falsche Zeitzone

Ich habe es eingegrenzt auf, was zu sein scheint, dass Webpack die bundle.js Datei zuerst lädt, bevor moment.tz.guess() die richtige Zeitzone bekommt.

alt text

Schauen Sie sich die Ladezeit, und sehen, wie die Zeitzone ändert sich nach bundle.js Laden abgeschlossen hat.

Irgendwelche Ideen, wie man das löst? Irgendwie raus heute:/

Antwort

1

Ich habe es gefunden! : D

Also im Grunde, da wir HMR für Server- und Client-Seite Rendering verwenden, war das Problem, dass es UTC auf dem Server geladen wurde, es sich wie UTC sendet dann vom Client mit der richtigen Zeitzone überschrieben werden. Alles was ich tun musste war so etwas.

const __CLIENT__ = !!global.window 

export class Something extends Component { 
    state = { 
    timezone: /\(([^)]+)\)/.exec(new Date())[1] 
    } 
    render() { 
    return (
     <div> 
     {__CLIENT__ && <div>{`Times are being displayed in ${timezone} time.`}</div> 
     </div> 
    ) 
    } 
}