javascript - JS new Date() sera 8 heures plus tôt lorsqu'il sera enregistré dans mongodb. Nous sommes dans le huitième district est et mongodb fait gagner l'heure de Greenwich.
我想大声告诉你
我想大声告诉你 2017-06-05 11:08:46
0
7
1685

J'utilise mangouste,
Voici le schéma que j'ai défini :

const report = mongoose.Schema({
    datetime: Date,
    username: String,
    detail: mongoose.Schema.Types.Mixed
})

Voici les données que j'ai enregistrées :

let params = {
    username: 'testadmin',
    detail: '23123',
    datetime: new Date('December 17, 1995 03:24:00')
}

L'heure enregistrée dans mongodb sera huit heures plus tôt :

'3h00 du matin le 17 décembre 1995' devient '19h00 le 16 décembre, le fuseau horaire est incorrect,,, S'il vous plaît, dites-moi quoi. devriez-vous faire dans cette situation? Existe-t-il une méthode de traitement correspondante dans mongodb ou mongoose ?

Merci d'avance, mon frère !

我想大声告诉你
我想大声告诉你

répondre à tous(7)
伊谢尔伦

Il s'avère que mongodb stocke l'heure UTC, qui est globalement unifiée. Ensuite, enregistrez-la directement. Après l'avoir lu, mettez l'heure new Date(report.datetime).toLocaleString() et. appelez js Juste le Date().toLocaleString() intégré fera l'affaire

漂亮男人

Parce que mangouste et sequelize n'ont pas pris en compte le fuseau horaire lorsqu'ils ont commencé, et l'ORM s'est trompé de fuseau horaire plus tard. La solution est de voir s'il est résolu dans la dernière version. S'il n'est pas encore résolu, vous pouvez essayer d'envoyer le problème à l'auteur. Vous ne pouvez ensuite le prétraiter que vous-même au niveau de l'application, en écrivant +8 heures et en lisant -. 8.

滿天的星座

La méthode

getTimezoneOffset() renvoie le décalage horaire entre l'heure moyenne de Greenwich et l'heure locale, en minutes.

世界只因有你

Enregistrez-le sous un horodatage Unix, afin qu'il n'y ait aucun problème lorsque vous le supprimez, traitez simplement la conversion en fonction du fuseau horaire

.
洪涛

Il vous suffit de remettre l'heure iso dans la nouvelle date. Ce qui est enregistré est l'heure standard iso. Lorsque la nouvelle date est définie, elle sera automatiquement convertie dans le fuseau horaire local

.
我想大声告诉你

Comme certains étudiants l'ont dit ci-dessus, utilisez le format ISO : new Date("2017-03-02T08:00:00+08:00")

ou

Utilisation de moment.js

Pour référence.

J'adore MongoDB ! Amusez-vous!


世界只因有你

Vous pouvez essayer de sauvegarder l'horodatage

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal