Saya menggunakan luwak,
Ini Skema yang saya takrifkan:
const report = mongoose.Schema({
datetime: Date,
username: String,
detail: mongoose.Schema.Types.Mixed
})
Ini adalah data yang saya simpan:
let params = {
username: 'testadmin',
detail: '23123',
datetime: new Date('December 17, 1995 03:24:00')
}
Selepas menyimpan ke dalam mongodb, masa yang disimpan adalah lapan jam lebih awal:
'3:00 pagi pada 17 Disember 1995' menjadi '7:00 malam pada 16 Disember, zon waktu adalah salah,,, Tolong beritahu saya apa yang perlu anda lakukan dalam situasi ini? Adakah terdapat kaedah pemprosesan yang sepadan dalam mongodb atau mongoose?
Terima kasih terlebih dahulu, abang!
Ternyata mongodb menyimpan masa UTC, yang disatukan secara global Kemudian simpannya secara langsung Tiada operasi dilakukan sebelum menyimpannya, letakkan masa Date(report.datetime).toLocaleString() dan call js Hanya Date().toLocaleString() terbina dalam akan melakukan
Sebab luwak dan sekuel tidak mengambil kira zon waktu pada mulanya, dan ORM mendapat zon waktu yang salah kemudian. Penyelesaiannya adalah untuk melihat sama ada ia diselesaikan dalam versi terkini Jika ia belum diselesaikan, anda boleh cuba menghantar masalah kepada pengarang Kemudian anda hanya boleh memprosesnya sendiri di lapisan aplikasi, menulis +8 jam dan membaca -. 8.
Simpan sebagai cap waktu unix, jadi tidak akan ada sebarang masalah apabila anda mengeluarkannya, cuma proses penukaran mengikut zon waktu
.Hanya masukkan semula masa iso ke dalam Tarikh baharu Masa standard iso yang disimpan akan ditukar secara automatik kepada zon waktu tempatan apabila Tarikh baharu digunakan.
Seperti yang dikatakan oleh beberapa pelajar di atas, gunakan format ISO: new Date("2017-03-02T08:00:00+08:00")
atau
Menggunakan moment.js
Untuk rujukan.
Suka MongoDB! Berseronoklah!
Anda boleh cuba simpan cap masa