Как написать условное время? - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь получить условное выражение, например, с датой завтрашнего дня, дайте мне знать, что если завтра, а завтра больше часа дня, так что сделайте что-нибудь.

Я работаю с MomentJ, так что если выприветствуем решение, которое может помочь мне.

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Чтобы получить дату на 13:00 завтра, вы можете создать дату на сегодня, добавить день, а затем установить время на 13:00.

Затем вы можете напрямую сравнить ее с другими датами, используя операторы сравнения < и > (но вам необходимо преобразовать обе даты в числа, чтобы сравнить их как == или ===).

Например

// return true if d0 is before d1, otherwise false
function isBefore(d0, d1) {
  return d0 < d1;
}

// Generate some sample dates
let now = new Date();
let d0 = new Date(now.setDate(now.getDate() + 1));
let d1 = new Date(now.setHours(10));
let d2 = new Date(now.setHours(15));

// Format output
function formatDate(d) {
  let options = {day:'2-digit', month:'short', year:'numeric', 'hour-12':false, hour:'2-digit',minute:'2-digit'};
  return d.toLocaleString('en-gb',options);
}

// Create a test date for 13:00 tomorrow
var testDate = new Date();
testDate.setDate(testDate.getDate() + 1);
testDate.setHours(13,0,0,0);

// Test it against sample dates
[d0,d1,d2].forEach(function(d) {
  console.log(formatDate(d) + ' before ' + formatDate(testDate) + '? ' + isBefore(d, testDate)); 
})
1 голос
/ 10 июня 2019

В настоящий момент вы можете получить завтра на

const tomorrow  = moment().add(1, 'days');

Если вы хотите получить завтра в 13:00, тогда

var tomorrow = moment('01:00 pm', "HH:mm a").add(1, 'days');

Если вы хотите сравнить, то

var tomorrow = moment('01:00 pm', "HH:mm a").add(1, 'days');

var current = moment();

if(current < tomorrow)
  console.log('true');
else
  console.log('false');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...