проверить текущую метку времени между двумя метками времени - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть отправка двух временных отметок времени начала и окончания, я должен проверить, находится ли текущая отметка времени между начальной и конечной отметкой времени, тогда я должен изменить значение переменной на true, в противном случае - false.

{
    "start_time":"2020-04-23T06:49:55.510Z",
    "end_time":"2020-04-23T20:49:55.510Z",
    "form_type":"5e54b4e4d76bf807091043ae", 
    "book_id":"5e56469d42f0c5647625fd45",
} 

Я отправляю данные из этого в mongodb

код sudo как-то так

var check = false
currentTime = Date.now()
if(currentTime < Start_time  && currentTime < end_time)
{
   check = true
}

Я не могу сделать запрос для этого.

Ответы [ 5 ]

1 голос
/ 23 апреля 2020

Вы можете использовать момент. js для этого.

moment (). Ut c ();

Возвращает текущую метку времени.

Тогда Вам необходимо преобразовать вашу метку времени в объект момента.

compare_time = moment.utc('2020-04-21T06:49:55.510Z', 'YYYY-MM-DD[T]HH:mm:ss[Z]');

После этого сравните это с текущим временем, используя "isAfter ()". Вот рабочий пример

var current = moment.utc();
var compare_time = moment.utc('2020-04-21T06:49:55.510Z', 'YYYY-MM-DD[T]HH:mm:ss[Z]');
current.isAfter(compare_time); // true
1 голос
/ 23 апреля 2020
currentTime = new Date();
db.model.find({"start_time" : { $gte : new 
  ISODate(currentTime.toISOString()) },
"end_time" : { $lte : new 
  ISODate(currentTime.toISOString()) }
});

Можете ли вы попробовать этот Mon go запрос и проверить, работает он или нет? Пожалуйста, измените код в соответствии с вашими потребностями.

0 голосов
/ 23 апреля 2020

Вы можете использовать mongodb-агрегацию. Ваш запрос будет выглядеть так:

currentTime = new Date()
db.model.aggregate([
{
    $set: {
        value: {
            $cond: [{currentTime: {$gt: "$start_time", $lt: "$end_time"}}, true, false]
        }
    }
}
])
0 голосов
/ 23 апреля 2020

Довольно простое сравнение для использования .getTime() на объекте Date.

const jsonObject = {
  "start_time": "2020-04-23T06:49:55.510Z",
  "end_time": "2020-04-23T20:49:55.510Z",
  "form_type": "5e54b4e4d76bf807091043ae",
  "book_id": "5e56469d42f0c5647625fd45",
}

const startTime = new Date(jsonObject.start_time).getTime();
const endTime = new Date(jsonObject.end_time).getTime();
const currentTime = new Date().getTime();

console.log(startTime, currentTime, endTime);
console.log(startTime <= currentTime && currentTime <= endTime);
0 голосов
/ 23 апреля 2020

Вам нужно сравнить объекты Date, например, так:

var obj={
    "start_time":"2020-04-23T06:49:55.510Z",
    "end_time":"2020-04-23T20:49:55.510Z",
    "form_type":"5e54b4e4d76bf807091043ae", 
    "book_id":"5e56469d42f0c5647625fd45",
} 
var check=Date.parse(obj.start_time)<Date.now() && Date.now()<Date.parse(obj.end_time)
...