JSFiddle - React, Tailwind, and code Playground
HTML
<table id="calendar"></table>
JavaScript
function calendar(d) {
var t = new Date(d); // Today [Wed Jan 16 2013 00:00:00 GMT-0500 (EST)]
var d = t.getDate(); // Today's date (1-31) [16]
var y = t.getFullYear(); // Full year [2013]
var m = t.getMonth(); // Month (0-11) [0]
var mN = [ // Month name array (0-11)
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"];
var fM = mN[m]; // Full month name [January]
var dIM = new Date(y, m + 1, 0).getDate(); // Number of days in current month (1-31) [31]
var dOW = new Date(y, m, 1).getDay(); // Day of the first day of the month (0-6) [2]
var nOW = Math.ceil((dIM + dOW) / 7); // Number of weeks in the month, including space [5]
var count = 0,
$row;
for (var i = 0 - dOW; i < dIM; i++) {
var day = i + 1;
if (count % 7 === 0) {
$row = $('<tr />').appendTo('#calendar');
}
if (day > 0) {
if (day === d) {
$row.append("<td>[" + day + "]</td>");
} else {
$row.append("<td>" + day + "</td>");
}
} else {
$row.append("<td>s</td>");
}
count++;
}
}
// "1 March 2013"
calendar(new Date());