怎么写有条件的时间?

时间:2019-06-10 04:44:18

标签: javascript date time momentjs

我正在尝试获取有条件的明天日期示例,让我知道如果明天是明天,并且超过明天下午1点,那么做些什么。

我与MomentJs合作,因此,如果您有一个可以帮助我的解决方案,

2 个答案:

答案 0 :(得分:1)

在momentJS中,明天你可以得到

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

如果您想明天下午1: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');

答案 1 :(得分:1)

要获取明天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)); 
})