Как найти дату, используя момент в пн goose с типом даты - PullRequest
0 голосов
/ 27 мая 2020

Я хочу выполнить поиск по типу даты в понедельник go db У меня проблема в том, что когда я использую момент, он меняет дату по умолчанию, поэтому я не понимаю, почему он меняет мою дату с тем же кодом

Вот что я пробую

    let params = {}
    let date = "2020-05-27" //I send it in String Type

    const newDate = new Date(date)
    const start = moment(newDate).startOf('day')
    const end = moment(newDate).endOf('day')
    console.log(newDate)
    console.log(start._d, end._d)
    Object.assign(params, { updatedAt: { $gte: start, $lte: end } })
    await Order.find(params)

, когда я отправляю первый запрос. Он возвращает правильную дату и собирает defaut, но после того, как я отправлю еще 1 запрос, мое start._d значение изменения, а моя дата имеет такое же значение

вот мой первый console.log

api              | 2020-05-27T00:00:00.000Z //date
api              | 2020-05-27T00:00:00.000Z (start.d)  2020-05-27T16:59:59.999Z (end.d)

вот мой второй console.log

  api            | 2020-05-27T00:00:00.000Z //date
api              | 2020-05-26T17:00:00.000Z(start.d) 2020-05-26T23:59:59.999Z(end.d)

как вы понимаете, почему мой start.d -1 день, а моя дата имеет такое же значение в первый раз

после того, как я отправлю еще один запрос, он покажет ту же вторую консоль. log

1 Ответ

0 голосов
/ 27 мая 2020

Я до сих пор не знаю, почему, но я исправил это, установив всю дату по stati c

let newDate = moment(date, 'YYYY-MM-DD')
    // let start = moment(newDate).startOf('day')

    let start = newDate.toDate() // This will return a copy of the Date that the moment uses
    start.setHours(0)
    start.setMinutes(0)
    start.setSeconds(0)
    start.setMilliseconds(0)
    let end = newDate.toDate()
    end.setHours(23)
    end.setMinutes(59)
    end.setSeconds(59)
    end.setMilliseconds(59)
...