Desidero inserire una data in una raccolta. Io uso la classe MongoDate
per creare l'oggetto data:Inserimento di una data in mongodb
$today = new MongoDate(strtotime(date('Y-m-d 00:00:00')));
Il problema è che una volta che è nella mia collezione la data è 2 ore prima.
Ad esempio, $today
qui deve essere 2013-05-28 00:00:00
ma una volta nel database è 2013-05-27 22:00:00
.
Non riesco a risolvere questo problema aggiungendo 2 ore manualmente al timestamp perché utilizzo la data nelle query.
L'ora locale del server in cui è in esecuzione Mongo è impostata sull'ora corretta del mio paese.
cosa sbagliato con risparmio di una data come 'nuovo oggetto Date'? includerà i dati relativi al fuso orario – Sagish
Tutte le date in MongoDB sono UTC, perché non riesci a rendere nota la tua fascia oraria delle applicazioni? – Sammaye
Uso le date come intervallo nelle mie query con operatori $ gte e $ lte. Questo è il motivo per cui voglio utilizzare il formato MongoDate che consente il confronto ed è facilmente leggibile (i timestamp non lo sono). Devo trovare un modo per inserire una data indipendentemente dal fuso orario e il cambio di ora legale/estiva perché ciò causerà problemi. –