使用momentjs,我如何判断2个时刻是否代表同一天(不是,必然,同一时间)?

Tro*_*roy 15 javascript momentjs

我有2个momentjs对象,moment1并且moment2:

在此输入图像描述

为什么moment1.isSame(moment2, 'date')返回false?

我的理解是检查moment1.isSame(moment2, 'day')返回它们是否是一周中的同一天(至少,它是从文档中看起来的样子).因此,如果'day'和'date'都不起作用,那么确定2个日期是否代表同一天的正确方法是什么?

我本来可以发誓我曾经使用moment1.isSame(moment2, 'date')过,但我必须记错了...

Vin*_*zoC 28

您可以同时使用'day',并'date'isSame.

正如文档所说:

检查片刻是否与另一个片刻相同.

当包含第二个参数时,它将匹配所有等于或大于的单位.传入month将检查monthyear.传递day将检查day,monthyear.

喜欢moment#isAfter和支持的moment#isBefore任何时间单位都受moment#startOf支持moment#isSame.

在以下文档中startOf:

注意: moment#startOf('date')2.13.0中添加为日期的别名

这是一个最新版本(2.17.1)的工作示例:

var moment1 = moment('01/23/17', 'MM/D/YYYY');
var moment2 = moment('01/23/17', 'MM/D/YYYY');
console.log( moment1.isSame(moment2, 'day') ); // true
console.log( moment1.isSame(moment2, 'date') ); // true
Run Code Online (Sandbox Code Playgroud)
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)


小智 5

让我们保持简单。

moment(date1).format('L') === moment(date2).format('L')
Run Code Online (Sandbox Code Playgroud)


Dam*_*ito 5

更简单,使用函数isSame

moment('2010-01-01').isSame('2010-02-01', 'day');
Run Code Online (Sandbox Code Playgroud)