Hi I am trying to get first date of current month in HTML date picker.
JavaScript
x
3
1
From <input type="date" id="fdate" value=""/>
2
To<input type="date" id="tdate" value=""/>
3
I get today date in id=”tdate like this given below but starting date of current month not able to get as I get current date.
JavaScript
1
11
11
1
var date = new Date();
2
var day = date.getDate();
3
var month = date.getMonth() + 1;
4
var year = date.getFullYear();
5
if (month < 10) month = "0" + month;
6
if (day < 10) day = "0" + day;
7
var today = year + "-" + month + "-" + day;
8
document.getElementById("tdate").value = today;
9
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
10
document.getElementById("tdate").value = firstDay;
11
Advertisement
Answer
date
input fields must be in YYYY-MM-DD format. Your code:
JavaScript
1
2
1
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
2
Will give back a string, e.g. Tue Sep 01 2020 00:00:00 GMT-0400 (Eastern Daylight Time)
, which is not what you want.
You can combine a couple of existing StackOverflow answers to accomplish what you want:
JavaScript
1
22
22
1
// https://stackoverflow.com/a/23593099/378779
2
function formatDate(date) {
3
var d = new Date(date),
4
month = '' + (d.getMonth() + 1),
5
day = '' + d.getDate(),
6
year = d.getFullYear();
7
8
if (month.length < 2)
9
month = '0' + month;
10
if (day.length < 2)
11
day = '0' + day;
12
13
return [year, month, day].join('-');
14
}
15
16
// https://stackoverflow.com/a/13572682/378779
17
function getFstDayOfMonFnc() {
18
var date = new Date();
19
return new Date(date.getFullYear(), date.getMonth(), 1)
20
}
21
22
Assuming fdate
should be the first of the month and tdate
should be today’s date:
JavaScript
1
4
1
document.getElementById('fdate').value = formatDate( getFstDayOfMonFnc() );
2
document.getElementById('tdate').value = formatDate( new Date() );
3
4