我怎样才能得到下一次14:00?

How can I get the next time it's 14:00?

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

文档似乎没有显示这样的示例,尝试 next 14:00 似乎并不奏效。

我不知道如何使用 Datejs,但这里有一个纯 JavaScript 的简单解决方案。希望它有所帮助。此示例获取当前日期并检查它是否已经超过 14:00,如果是,则为第二天 14:00 创建一个 Date 对象。如果它还没有超过 14:00,它会为那天 14:00 创建一个日期对象。

var currentDate = new Date();
if (currentDate.getHours() >= 14){
    var newDate = new Date(currentDate.getYear(), currentDate.getMonth(), currentDate.getDate()+1, 14, 0, 0, 0);
}
else{
    var newDate = new Date(currentDate.getYear(), currentDate.getMonth(), currentDate.getDate(), 14, 0, 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)

这里是 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 个。