JavaScript中不带时间戳的日期和时间

3
在JavaScript中,我需要处理日期、时间和"日期和时间"的概念,而不涉及特定的时间点。这正是Java中joda time的LocalDate和LocalTime提供的完全相同的语义。我曾经简单地查看了Date.js和moment.js,但这两个库似乎都是基于表示时间点的Date对象构建的。有没有提供我所需内容的javascript库?
用例:
有一个模型实体-优惠券-它具有过期日期(joda time的LocalDate)。我想将该日期与今天的日期进行比较,因此我需要表示今天的日期(实际上,在yyyy-mm-dd格式的字符串中也可以)。我知道今天的日期以及比较结果也将取决于浏览器的时区设置,但这不是问题。

1
通常,所有这类库都使用“纪元时间”作为参考!你能描述一下使用情况吗? - nalinc
1
@NLN 有很多用例。例如生日日期。但是保险公司或银行也迫切需要像普通日历日期一样的类型(例如计算与天数相关的利息,而不是“时代时间”)。 - Meno Hochschild
1个回答

2
我曾经开始过几次使用类似于Noda Time / Joda Time / Java 8的JavaScript库的尝试。我确实看到了其中的价值。然而,据我所知,目前还没有其他类似的库出现。有其他原因使得Date对象不是特别理想。如果我能够启动一个新的库,或者发现有其他人创建了这样的库,我会尽量记得在此帖子中进行更新。
与此同时,最简单的方法就是使用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来实现这个功能,但是解析行为会有一些问题。 Moment.js更加容易。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接