Xin chào, Schmema của tôi có một trường có ngày ISO:
ISODate("2015-04-30T14:47:46.501Z")
Paypal trả về một đối tượng ngày ở dạng này sau khi thanh toán thành công:
Dấu thời gian/ngày do PayPal tạo, ở định dạng sau: HH:MM:SS Mmm DD, YYYY PDT
Độ dài: 28 ký tự
Bây giờ tôi muốn cập nhật mục nhập cơ sở dữ liệu chứa payers_email_address và dấu thời gian khác tối đa 15 phút so với dấu thời gian của paypals.
Tôi nghĩ rằng các bước sau đây là cần thiết để làm điều này:
1) Tôi không chắc chắn ở bước này. Cách đơn giản nhất là xâu chuỗi ngày của paypal, sau đó chia nhỏ và sắp xếp lại. Nhưng tôi đoán có cách nào tốt hơn?
câu hỏi:Cách chuyển đổi chính xác ngày PDT thành ngày UTC.
2) Tạo ngày UTC mới: var dt = new Date('2010-06-09T15:20:00Z');
3) Thêm 15 phút vào ngày: dt.setMinutes(dt.getMinutes() + 15);
4) Truy vấn giữa hai ngày Truy vấn MongoDB/Mongoose vào một ngày cụ thể?
Tổng thể (không áp dụng đến ngày 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()}})
biên tập:
Tôi đoán nếu truy vấn của tôi hoạt động thì tôi có thể sử dụng nó với PDT:
ngày mới("20:15:10 05 10, 1985 PDT").toUTCString()
Tôi đang đăng các bước của mình vì có thể có các hàm cầy mangut để chuyển đổi ngày và tôi không phải thực hiện 1-3.
Điều này hoạt động trong mongoShell của tôi, tôi sẽ báo cáo lại sau nếu nó hoạt động trong chương trình:
MyModel.find({date: {"$gte": new Date("10:00:46 04 29, 2015 PDT"), "$lt": new Date("14:00:46 05 01, 2015 PDT" )}})
Tôi là một lập trình viên xuất sắc, rất giỏi!