Cześć mój Schmema ma pole z datą ISO:
ISODate("2015-04-30T14:47:46.501Z")
Paypal zwraca po pomyślnym dokonaniu płatności obiekt daty w tej formie:
Time/Date stamp generated by PayPal, in the following format: HH:MM:SS Mmm DD, YYYY PDT
Length: 28 characters
Teraz chcę zaktualizować pozycję bazy danych, która zawiera adres_płacący_płacę i znacznik czasu, który maksymalnie różni się od znacznika czasu paypals o 15 minut.
Są to kroki, które moim zdaniem są konieczne, aby to zrobić:
1) Na tym etapie nie jestem pewien. Tępym sposobem byłoby ustalenie terminu płatności PayPal, a następnie podzielenie go i zmiana kolejności. Ale chyba jest lepszy sposób?
Pytanie: Jak poprawnie przekonwertować datę PDT na datę UTC.
2) Utwórz nową datę UTC: var dt = nowa data („2010-06-09T15: 20: 00Z”);
3) Dodaj 15 min do daty: dt.setMinutes (dt.getMinutes () + 15);
4) Zapytanie pomiędzy dwiema datami Zapytanie MongoDB / Mongoose w określonym dniu?
W całości (nie działa dla daty 30.04.2015)
MyModel.find({date: {"$gte": new Date("10:00:46 04 29, 2015").toUTCString(), "$lt": new Date("14:00:46 05 01, 2015").toUTCString()}})
EDYTOWAĆ:
Sądzę, że jeśli mam problem z działaniem zapytania, mogę po prostu używać tego samego z PDT:
new Date("20:15:10 05 10, 1985 PDT").toUTCString()
Opublikowałem swoje kroki, ponieważ być może istnieje funkcja mangusty do konwersji daty i nie muszę robić 1-3.
Odpowiedzi:
1 dla odpowiedzi № 1Działa to w moim mongoShell, zgłoś później, jeśli zadziałało w programie:
MyModel.find({date: {"$gte": new Date("10:00:46 04 29, 2015 PDT"), "$lt": new Date("14:00:46 05 01, 2015 PDT")}})