6

特定の月/年の曜日名で月全体を取得するにはどうすればよいですか? お気に入り :

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

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

出力は次のようになります。

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

よろしく、クリス

4

6 に答える 6

11

これはあなたが尋ねたことをするはずです。

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;
}
于 2012-07-04T04:42:07.387 に答える
2

これを試して

<!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>
于 2012-07-04T04:27:18.920 に答える
0

これを試して、コンソールで結果を確認してください。

<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>
于 2012-07-04T04:37:40.710 に答える
0

標準のJavaScriptDateオブジェクトを使用して、自分でロジックを非常に簡単に実行できます。これは、1つの日付を取得して配列にプッシュする例です。メソッドを呼び出して、1か月全体をループするだけです。(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));
于 2012-07-04T04:27:25.917 に答える
0

DateJSには、ロジックを実装するために必要な関数があります。

@ natlee75が指摘したように、そこからロジックを処理できます。

于 2012-07-04T04:17:12.657 に答える
0

私はこれが古い質問であることを知っていますが、今日はこれにリンクされた質問です。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))

于 2019-12-09T13:57:36.073 に答える