18

我有两个 luxon 对象,

let startDate = DateTime.fromISO(startDate)
let someDate = DateTime.fromISO(someDate)

如果 someDate <= startDate,只有日期,没有时间,我如何比较?

4

5 回答 5

30

要仅比较日期,请使用startOf

startDate.startOf("day") <= someDate.startOf("day")
于 2020-02-10T09:38:34.090 回答
4

文档:https ://moment.github.io/luxon/#/math?id=comparing-datetimes

var DateTime = luxon.DateTime;

var d1 = DateTime.fromISO('2017-04-30');
var d2 = DateTime.fromISO('2017-04-01');

console.log(d2 < d1); //=> true
console.log(d2 > d1); //=> false
<script src="https://moment.github.io/luxon/global/luxon.min.js"></script>

于 2021-07-09T14:38:30.917 回答
0

用于ordinal以整数形式获取一年中的日期,请参阅https://moment.github.io/luxon/docs/class/src/datetime.js~DateTime.html#instance-get-ordinal

startDate.ordinal <= someDate.ordinal
于 2020-05-19T17:30:51.183 回答
0

github 问题提出的另一个选项可能是创建您自己的 Date 类:

Luxon 不支持[单独的日期类],但通过组合很容易做到:创建一个包装 DateTime 并公开您需要的方法子集的 Date 类。你可以决定你需要为你的应用程序提供多纯的抽象(即你想要做多少工作来使你的包装器功能齐全和纯洁)

于 2021-09-05T00:44:11.660 回答
0

这些答案都不适用于闰年。我发现以下成功,

function dateTimesAreSameDay(dateTime1, dateTime2) {
  return dateTime1.month === dateTime2.month && dateTime1.day === dateTime2.day;
}
于 2020-08-03T01:43:41.420 回答