Salut mon Schmema a un champ avec une date ISO:
ISODate("2015-04-30T14:47:46.501Z")
Paypal retourne sur un paiement réussi un objet date sous cette forme:
Time/Date stamp generated by PayPal, in the following format: HH:MM:SS Mmm DD, YYYY PDT
Length: 28 characters
Maintenant, je veux mettre à jour l'entrée de la base de données qui a le payers_email_address et un horodatage qui diffère au maximum de l'horodateur paypals de 15 minutes.
Voici les étapes que je pense nécessaires pour y parvenir:
1) Sur cette étape, je ne suis pas sûr. Le moyen le plus simple serait de ficeler la date paypal puis de la diviser et de la réorganiser. Mais je suppose qu'il existe une meilleure façon?
Question: Comment convertir correctement la date PDT en date UTC.
2) Faites une nouvelle date UTC: var dt = nouvelle date ("2010-06-09T15: 20: 00Z");
3) Ajoutez 15 minutes à la date: dt.setMinutes (dt.getMinutes () + 15);
4) Requête entre deux dates MongoDB / Mongoose interroge à une date spécifique?
En totalité (ne fonctionne pas pour une date au 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()}})
MODIFIER:
Je suppose que si je fais fonctionner la requête, je peux simplement utiliser la même chose avec PDT:
new Date("20:15:10 05 10, 1985 PDT").toUTCString()
J'ai posté mes étapes car il y a peut-être une fonction mangouste pour convertir la date et je n'ai pas à faire 1-3.
Réponses:
1 pour la réponse № 1Cela fonctionne dans mon mongoShell, je signalerai plus tard si cela a fonctionné dans le programme:
MyModel.find({date: {"$gte": new Date("10:00:46 04 29, 2015 PDT"), "$lt": new Date("14:00:46 05 01, 2015 PDT")}})