javascript - 试图在 html 日期选择器中获取当前月份的第一个日期
问题描述
您好我正在尝试在 HTML 日期选择器中获取当前月份的第一个日期。
From <input type="date" id="fdate" value=""/>
To<input type="date" id="tdate" value=""/>
我在 id="tdate 中得到今天的日期,如下所示,但是当我得到当前日期时,当月的开始日期无法获得。
var date = new Date();
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
var today = year + "-" + month + "-" + day;
document.getElementById("tdate").value = today;
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
document.getElementById("tdate").value = firstDay;
解决方案
date
输入字段必须采用 YYYY-MM-DD 格式。你的代码:
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
将返回一个字符串,例如Tue Sep 01 2020 00:00:00 GMT-0400 (Eastern Daylight Time)
,这不是您想要的。
您可以结合几个现有的 StackOverflow 答案来完成您想要的:
// https://stackoverflow.com/a/23593099/378779
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
// https://stackoverflow.com/a/13572682/378779
function getFstDayOfMonFnc() {
var date = new Date();
return new Date(date.getFullYear(), date.getMonth(), 1)
}
假设fdate
应该是本月的第一天并且tdate
应该是今天的日期:
document.getElementById('fdate').value = formatDate( getFstDayOfMonFnc() );
document.getElementById('tdate').value = formatDate( new Date() );
推荐阅读
- visual-studio-code - 在 Linux 上使用 VSCode 调试 Vala
- linux - 远程 - SSH 未连接到 VSCode 中的远程 Linux 服务器?
- python - 我将如何一起运行这两个文件。一个gui文件和一个主脚本
- javascript - 当视频的当前时间大于某个值时执行函数
- docker - GOOGLE_APPLICATION_CREDENTIALS 在 Cloud Run Container 中未定义
- excel - VB.NET - 删除 Activecell 的“命名范围”
- excel - 将“Control + A”插入文本框
- git - GitHub,但大文件转到 Google Drive
- python-xarray - 如何在 xarray 的后端添加 fsspec.open_local
- android - Firestore 全文搜索 Android