无法使用isSame

问题描述

寻找解决方案来提醒今天是生日。这里比较isSame()中的 Day Month 很遗憾,isSame()没有将日期与给定日期进行比较。当年份不同时,月份也不会成立。

正在寻找使用JavaScript来查找用户的生日

const dateOfBirth = moment("2018-09-07T13:36:14.000Z").format("DD-MM-YYYY");
const today = moment(new Date()).format("DD-MM-YYYY");

if (
  moment(dateOfBirth).isSame(today,"day") &&
  moment(dateOfBirth).isSame(today,"month")
) {
  console.log("Today is your birth day");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

解决方法

Momentjs具有api,用于检查特定日期是否相同。

作为参数,它使用日期对象,而不是格式化的字符串。

要检查任何年份,只需使用一个技巧:将对象的年份设置为今天。

示例:

// Date in any year
const dateOfBirth = moment("2018-09-07T13:36:14.000Z");

// Set year to current year
dateOfBirth.year(moment().year());

// Compare to today
console.log('Is it your birthday?',dateOfBirth.isSame(new Date(),"day"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

还可以复制该变量,以便原始变量可以保持不变。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...