jquery - 使用 JQuery 获取未来 180 天,但当前获取日期,例如 02/30/XX
问题描述
我有一个输入 type="date" 并且我正在尝试将最小数字设置为今天,将最大数字设置为从现在开始的 180 天(包括/不包括今天,此时无关紧要)。
我可以得到今天并将其设置为最小值。没关系。
当我尝试将最大值设置为 180 时,该函数返回不存在的日期,例如 2 月 31 日。根据https://www.convertunits.com/dates/daysfromnow/180,从今天(2019 年 9 月 3 日)起的 180 天将是 2020 年 3 月 1 日。我的代码中的计算大致正确的日期,但允许非存在日期?
注意:如果我将其更改为 181 天(即今天之后的 180 天),那就可以了,但明年就不行了。当日期不存在时,它不会抛出任何错误,它只是允许用户选择他们想要的任何未来日期。
function OneHundredEightDaysAway() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //Jan = 0
var yyyy = today.getFullYear();
var date = new Date(yyyy, mm, dd);
var newdate = new Date(date);
newdate.setDate(newdate.getDate() + 180); //180 days in the future
var nd = new Date(newdate);
var DD = nd.getDate();
var MM = nd.getMonth();
var YYYY = today.getFullYear();
if (DD < 10) {
DD = '0' + DD
}
if (MM < 10) {
MM = '0' + MM
}
var maxStart = YYYY + "-" + MM + "-" + DD;
return maxStart;
}
解决方案
这对我来说工作正常。
var date = new Date();
date.setDate(date.getDate() + 180);
var formatted = date.toLocaleDateString();
var element = document.getElementById('date');
element.textContent = formatted;
<div id="date"></div>
推荐阅读
- javascript - let foo = (bar = 0); 是什么意思 在 JavaScript 中,我将如何在 TypeScript 中编写它?
- python-3.x - 如何使用 python3 将文本文件中的 CIDR 转换为 IP 范围
- node.js - 将多个图像从缓冲区转换为字符串,然后通过其余 API 调用它们
- discord - 如何制作提及人的化身命令?
- memory - 二叉树初始化函数中的内存泄漏
- java - Spring boot Multi Module 项目、Rest Services 和 Web 应用程序
- r - 在执行 GBM(梯度提升机)算法之前预处理我的数据
- spring-security - 如何用属性或类似的东西替换这个@Bean?
- javascript - 按对象属性百分比对数组排序
- python-3.x - tensorflow create tf_record 不支持 XML 文件