用户输入日期和今天日期之间的增量时间的 JS 日期计算器

该项目的想法很简单:一个从用户那里检索输入的计算器,希望是日期时间格式,尽管我不知道该怎么做,所以我现在正在检索整数并从中构造一个日期,然后减去今天的日期给我说输入日期之前剩下的天数。是的,这可能很简单,但我不知道我做错了什么,因为我现在在我的 HTML NaN 中得到一个值。所以再次明确一点,用户输入一个日期,JS 将计算距离该日期还有多少天。请尽可能少地帮助我,任何一点帮助对我来说都很重要。


这是我到目前为止的代码:


var today = new Date();

var dd = String(today.getDate()).padStart(2, '0');

var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!

var yyyy = today.getFullYear();

var y = prompt("Enter the year")

var yy = prompt("Enter the month")

var yyy = prompt("Enter the day")

today = mm + '/' + dd + '/' + yyyy;

const oneDay = 24 * 60 * 60 * 1000;

var oneDate = new Date(y, yy, yyy);

var diffDays = Math.round(Math.abs((oneDate - today) / oneDay));

document.write(diffDays)


墨色风雨
浏览 141回答 2
2回答

千巷猫影

你实际上非常接近。您无缘无故地将一个字符串重新分配给今天,只是将其保留为日期。但是因为你想要一整天,你需要将时间归零。此外,从yy中减去 1,因为它将是日历月份编号,而不是 ECMAScript 月份编号,因此:var today = new Date();// zero the timetoday.setHours(0,0,0,0);var dd = String(today.getDate()).padStart(2, '0');var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!var yyyy = today.getFullYear();var y = prompt("Enter the year")var yy = prompt("Enter the month")var yyy = prompt("Enter the day")// don't do this//today = mm + '/' + dd + '/' + yyyy;const oneDay = 24 * 60 * 60 * 1000;// Subtract 1 from month numbervar oneDate = new Date(y, yy - 1, yyy);var diffDays = Math.round(Math.abs((oneDate - today) / oneDay));document.write(diffDays)

慕斯王

您可以使用Dayjs库轻松完成此操作。它只有 2KB,所以它不会使您的页面变大很多,但会让您的生活变得更简单。这是浏览器的完整工作示例:dayjs.extend(window.dayjs_plugin_duration)dayjs.extend(window.dayjs_plugin_relativeTime)&nbsp;&nbsp;const now = dayjs();const year = prompt("Enter the year");const month = prompt("Enter the month");const day = prompt("Enter the day");const userDate = dayjs(new Date(year, month - 1, day));const difference = dayjs.duration(now.diff(userDate)).asDays();document.write(`${Math.round(difference, 0)} days`);<script src="https://unpkg.com/dayjs@1.8.30/dayjs.min.js"></script><script src="https://unpkg.com/dayjs@1.8.30/plugin/relativeTime.js"></script><script src="https://unpkg.com/dayjs@1.8.30/plugin/duration.js"></script>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript