Javascript 中没有时间戳的日期和时间

Date and time without timestamp in Javascript

在 Java 脚本中,我需要处理日期、时间和 "date and time " 的概念,而不是指特定的时间点。这与 Java 中 joda time 的 LocalDate 和 LocalTime 提供的语义完全相同。我一直在简要地查看 Date.js 和 moment.js,但是这两个库似乎都建立在代表时间点的 Date 对象之上。有没有 javascript 库可以提供我需要的东西?

用例:

有一个模型实体 - 优惠券 - 具有到期日期(joda time 的 LocalDate)。我想将该日期与今天的日期进行比较,因此我需要表示今天的日期(实际上 yyyy-mm-dd 格式的字符串就可以)。我知道今天的日期以及比较结果也取决于浏览器的时区设置,但这不是问题。

我已经开始使用 Java 脚本库几次,它与 Noda Time / Joda Time / Java 8 类似 API。我肯定看到了它的价值。然而,据我所知,目前还没有任何消息。有 other reasons 使得 Date 对象不太理想。我会尽量记得更新这个 post when/if 我曾经有过一个新的图书馆,或者如果我了解到别人创建的图书馆。

同时,最简单的方法是使用 moment.js:

var expDateString = "2015-06-30";
var exp = moment(expDateString, "YYYY-MM-DD");
var now = moment();
if (exp.isAfter(now))
   // expired
else
   // valid

您也可以使用普通的 JavaScript 来执行此操作,但是在解析行为方面存在一些问题。片刻更轻松。