我正在编写日历,我需要知道每个月的第一天是什么。就像,这个月,第一天是星期天。我将如何计算一年中的所有月份?或任何一个月。
提前致谢!
编辑:日期可以整数形式返回。
答案 0 :(得分:1)
您可以创建一个返回日期名称
的方法function(year, month){
var date = new Date(year, month, 1);
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
return days[date.getDay()];
}
答案 1 :(得分:1)
支持 toLocaleString 的选项,您可以使用它来以浏览器默认语言获取日期名称:
function getDayName(date) {
return date.toLocaleString(undefined, {weekday:'long'});
}
function getMonthName(date) {
return date.toLocaleString(undefined, {month:'long'});
}
// Create a date
var d = new Date();
// Set to first of month
d.setDate(1);
// Create string
console.log(`The first of ${getMonthName(d)} was a ${getDayName(d)}.`);
当然,将英语与其他语言混合可能不合适......
答案 2 :(得分:0)
JavaScript已经开箱即用getDay
。
new Date().getDay()
这将返回0-6。取决于它的工作日。
如果您需要它作为可读字符串,您可能需要执行以下操作:
var weekdays = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
console.log(weekdays[new Date().getDay()]);
知道这一点你可以更进一步:
const year = new Date().getFullYear();
const weekdays = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
[0,1,2,3,4,5,6,7,8,9,10,11].forEach(x => {
const weekday = new Date(year, x, 1).getDay();
console.log(weekdays[weekday]);
});
请参阅:MDN
答案 3 :(得分:0)
如果你还没有使用它,我强烈推荐使用MomentJS库。使用片刻,您可以使用以下单一陈述获得任何月份的第1天:
moment("2017-11-01").startOf('month').format("dddd")
如果由于某种原因你不能使用时刻,那么你可以创建一个接收month
和year
的函数,并返回该月1日的那一天。您需要使用Date.prototype.getDay()来返回0到6之间的值,其中0表示星期日。
$("#get-day").on("click", function(e){
var year = $("#year").val();
var month = $("#month").val();
alert( getDay(year, month) );
});//#get-day click()
function getDay(year, month){
var days = ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"];
var dayIndex = new Date(year + "-" + month + "-01").getDay();
return days[ dayIndex ];
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="year" value="2017" />
<input type="text" id="month" value="10" />
<button id="get-day">Get Day on 1st</button>
&#13;
答案 4 :(得分:0)
.getDay()方法返回一个整数,即根据当地时间指定日期的星期几,其中星期日= 0,星期六= 6.以下是使用此示例:
dateFunction = function(myDate){
var days =
["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
var dayInt = new Date(myDate).getDay()
return days[dayInt]
}
var FirstDayOfOctober = dateFunction("2017-10-01");