繁体   English   中英

JS日期,每月的第一天

[英]JS dates, first day of the month

我正在编写日历,我需要知道每个月的第一天是什么。 例如,本月的第一天是星期日。 我将如何计算出一年中所有月份的情况? 或任何月份。

提前致谢!

编辑:日期可以作为整数返回。

如果支持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)}.`); 

当然,将英语与其他某种语言混合可能不合适。

您可以创建一个返回日期名称的方法

function(year, month){
    var date = new Date(year, month, 1);
    var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    return days[date.getDay()];
}

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

如果您尚未使用MomentJS库,我强烈建议您使用它。 使用时刻,您可以使用以下单个语句获取每月的1号:

moment("2017-11-01").startOf('month').format("dddd")

如果由于某种原因无法使用矩,那么您可以创建一个函数,该函数以monthyear并返回该月的第一天。 您需要为此使用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> 

.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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM