JS日期,每月的第一天

时间:2017-10-16 10:41:18

标签: javascript date

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

提前致谢!

编辑:日期可以整数形式返回。

5 个答案:

答案 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")

如果由于某种原因你不能使用时刻,那么你可以创建一个接收monthyear的函数,并返回该月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;
&#13;
&#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");