2017-10-16 75 views
-1

我正在编程一个日历,我需要知道每个月的第一天是什么。喜欢,这个月,第一天是星期天。我将如何在一年的所有月份中弄清楚这一点?或者这个问题的任何一个月。JS日期,月的第一天

在此先感谢!

编辑:当天可以作为整数返回。

+0

你可以用'新的日期( “2017年10月1日”)。getDay()'来获得任何日期的那一天。没有? –

+0

我如何将它变成适用于任何月份的功能?这是我的问题 – Miguel

回答

1

你可以创建一个返回当天名称的方法

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

这个函数返回Uncaught SyntaxError:意外的令牌( – Miguel

+1

等待nevermind。它是基数0,但它的工作原理。 – Miguel

0

JavaScript已经提供了这个开箱即用getDay

new Date().getDay() 

这将返回0-6。取决于它是哪个工作日。

如果你需要它作为一个可读的字符串,你可能想要做这样的事情:

var weekdays = [ 
 
    'Sunday', 
 
    'Monday', 
 
    'Tuesday', 
 
    'Wednesday', 
 
    'Thursday', 
 
    'Friday', 
 
    'Saturday' 
 
]; 
 

 
console.log(weekdays[new Date().getDay()]);

知道了这一点,你可以去furter:

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

0

我会强烈建议,如果你是不是已经使用它使用MomentJS库。

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>

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

当然与其他语言混合英语可能不适合的...

相关问题