问题描述
寻找解决方案来提醒今天是生日。这里比较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>
还可以复制该变量,以便原始变量可以保持不变。