简体   繁体   English

JavaScript:获取给定日期(月/年)的日期名称数组

[英]JavaScript: get array of day names of given date (month/year)

how can i get the whole month in day namesof given month/year?如何在给定月份/年份的日期名称中获取整个月份? like:像:

var year = "2000";
var month = "7"

... some code here that makes an array with names of days of the given month...

and the output looks something like:输出看起来像:

Array ("1. Sunday", "2. Monday", "3. Tuesday", ... "29. Thursday", "30. Friday", "31. Saturday");

Best regards, Chris最好的问候,克里斯

This should do what you asked.这应该按照您的要求进行。

function getDaysArray(year, month) {
    var numDaysInMonth, daysInWeek, daysIndex, index, i, l, daysArray;

    numDaysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    daysIndex = { 'Sun': 0, 'Mon': 1, 'Tue': 2, 'Wed': 3, 'Thu': 4, 'Fri': 5, 'Sat': 6 };
    index = daysIndex[(new Date(year, month - 1, 1)).toString().split(' ')[0]];
    daysArray = [];

    for (i = 0, l = numDaysInMonth[month - 1]; i < l; i++) {
        daysArray.push((i + 1) + '. ' + daysInWeek[index++]);
        if (index == 7) index = 0;
    }

    return daysArray;
}

Try this试试这个

<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to display todays day of the week.</p>

<button onclick="myFunction()">Try it</button>

<script type="text/javascript">
function daysInMonth(month,year) {
    return new Date(year, month, 0).getDate();
}

function myFunction()
{var b=[],weekday = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],month=7,year=2000;
for(var i=1,l=daysInMonth(month,year);i<l;i++){
var d = new Date(year,month-1,i);
b.push(i+"."+weekday[d.getDay()]);
}
console.log(b);}//b is the desired array
</script>

</body>
</html>

DateJS has the functions you need to implement the logic: DateJS具有实现逻辑所需的功能:

As @natlee75 noted, you can handle the logic from there.正如 @natlee75 指出的那样,您可以从那里处理逻辑。

You can do the logic yourself pretty easily using the standard JavaScript Date object.您可以使用标准的 JavaScript Date 对象非常轻松地自己完成逻辑。 Here's an example of getting one date to push into your array.这是一个将一个日期推入数组的示例。 Just loop through the entire month calling the method.只需循环调用该方法的整个月。 ( jsFiddle ) jsFiddle

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

function getDisplay(month, day, year) {
    var d = new Date(year, month-1, day);
    return day + '. ' + daysOfTheWeek[d.getDay()];
}

array_push($dates, getDisplay(7, 4, 2012));

Try this and see the result in console.试试这个并在控制台中查看结果。

<script>
var weekday = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
               'Thursday', 'Friday', 'Saturday'];
var month = '7';
var year = '2012';
realMonth = parseInt(month,10)-1;
var monthObj = {};
for(var i=1;i<30;i++)
{
    var d = new Date(year,realMonth,i);              
    monthObj[i] = weekday[d.getDay()];
}
console.log(monthObj);
</script>

I know this is an old question, but today a question linked to this, and I'd like to point out one don't really need to do much things other than convert day (0-6) to string (Sunday-Saturday)我知道这是一个老问题,但今天有一个与此相关的问题,我想指出除了将day (0-6)转换为string (Sunday-Saturday)之外不需要做太多事情

 function getDays(year, month) { //month: 1-based, as normal person --month //change it to 0-based, as Date object let dayname = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] let date = new Date(year, month) let result = [] while(date.getMonth()==month){ result.push(`${date.getDate()}. ${dayname[date.getDay()]}`) date.setDate(date.getDate()+1) } return result; } console.log(getDays(2019,12))

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

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