我有2个momentjs对象,moment1
和moment2
:
为什么moment1.isSame(moment2, 'date')
返回false ??
我的理解是,检查moment1.isSame(moment2, 'day')
会返回它们是否是本周的同一天(至少,它是从文档中看起来的样子)。所以,如果两天都是这样的话。和' date'不工作,确定2个日期是否代表同一天的正确方法是什么?
我可以发誓我过去曾使用moment1.isSame(moment2, 'date')
,但我必须记错......
答案 0 :(得分:16)
您可以将'day'
和'date'
同时用于isSame
。
正如docs所说:
检查片刻是否与另一时刻相同。
当包含第二个参数时,它将匹配所有等于或大于的单位。传入
month
会检查month
和year
。传入day
会检查day
,month
和year
。与
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

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
&#13;
答案 1 :(得分:0)
让我们保持简单。
moment(date1).format('L') === moment(date2).format('L')