Javascript 如何使用moment.js计算生日前的天数

Javascript 如何使用moment.js计算生日前的天数,javascript,Javascript,HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content=&

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lab 3</title>
</head>
<body>
    <form  id ="form" action="" method="get" class="countdown">
        <div class="countdown">
            <label for="birthday">Enter your next birthday: </label>
            <input type="date" name="birthday" id="birthday" required>
        </div>
        <div class="countdown">
            <input type="submit" value="Submit"
        </div>
    </form>
    
    
<script src ="moment/moment.min.js"></script>    
<script src="lab3.js"></script>
</body>
</html>

实验三
输入您的下一个生日:

这是因为您正在将
amntOfTime
传递到
moment()
amntOfTime
是一个相对的时间字符串,而不是日期字符串,所以它不应该传递给时刻

moment("2021-02-17").fromNow(); // "in 3 days"
moment("2021-02-17").fromNow(true); // "3 days"
所以应该已经是你想要的格式了。“瞬间”自动推断出,您需要在几天内(而不是几分钟或几秒钟内)将其恢复,所以您无需进一步转换

您的代码应该是:

let amntOfDays = moment(bDay).fromNow();

您可以使用
.diff
函数获取生日前的天数

函数将返回一个数字,然后您必须更新您的消息:

const amntOfDays = moment(bDay).diff(moment(), "day")

当生日超过一个月时,我会在几个月内收到我的输出,而不是几天。
const amntOfDays = moment(bDay).diff(moment(), "day")