我怎样才能在下一次14:00时到达?

时间:2016-04-10 00:50:19

标签: javascript date time datejs

是否可以使用Datejs在Javascript中作为Date对象获取下一次14:00(例如)?

文档似乎没有显示这样的示例,尝试next 14:00似乎并没有起作用。

1 个答案:

答案 0 :(得分:0)

你真的不需要一个图书馆。您可以创建一个Date对象,如果它在14:00之后,请将日期设置为明天,然后将时间设置为14:00。

修改

原件允许从14:00到14:59:59.999的任何时间,因为它只检查小时。更新,以便从14:00:00.001到23:59:59.999的任何时间都被视为14:00之后。

还添加了Date.js版本(documentation为最小版本 - 也许还有更好的东西)。



// Create a date for now and remember the time
var d = new Date();
var time = +d;

// Set the time to 14:00 and, if earlier than now, add a day
d.setHours(14,0,0,0);
if ( d < time) {
  d.setDate(d.getDate() + 1);
}

document.write('Next 14:00: ' + d)
&#13;
&#13;
&#13;

这是Date.js版本。我找不到要包含在片段中的CDN。

// Equivalent using Date.js
var d = Date.present();
var t = +d;
d.set({hour:14});
if (d < t) {
  d.addDays(1);
}

document.write('<br>' + d3);

或者,作为一行:

Date.today().set({hour:14}).isBefore(Date.present())? Date.today().addDays(1).set({hour:14}) : Date.today().set({hour:14});

// Or
Date.today().set({hour:14}).addDays(Date.today().set({hour:14}).isBefore(Date.present())? 1:0);

我不推荐单线版;他们只是在那里表明它可以做到。它们每个都创建3个日期对象,而其他版本只创建1个。