javascript - jq里面,如何用getDate()和getDay()函数遍历出当月的所有日子和星期?
迷茫
迷茫 2017-04-10 15:41:02
[JavaScript讨论组]

比如现在是8月,我想得到1至31日这31个数字,并同时得到对应的星期
可是问题就是,getDate()和getDay()函数只能显示1个,该怎么遍历出当月所有的呢?
新手,请指教。谢谢

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
天蓬老师
var d = new Date();         // 这是当天
d.setDate(1);               // 这就是1号
var weekday = d.getDay();   // 1号星期几,从星期天为0开始

d.setMonth(d.getMonth() + 1);
d.setDate(0);               // 这两句得到最当月最后一天
var end = d.getDate();      // 最后一天的日,比如8月就是31

var days = [];
for (var i = 0; i < end; i++) {
    days[i] = {
        day: i + 1,
        week: (weekday + i) % 7
    }
}

// 最后 days 就是你想要的数据
console.log(days);

来看看 HTML 中的效果

http://jsfiddle.net/gy8r6znw/

高亮当前日期的版本在这里

http://jsfiddle.net/gy8r6znw/1/

巴扎黑

本月第一天
``
new Date(new Date().getTime() - (new Date().getDate() - 1) * 86400000).getDate()
``
之后就是加1天直到下个月

PHPz

写得不好。

var week = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
function getNextDate(date) {
    return new Date(date.getTime() + 1000 * 60 * 60 * 24);
}

function getMonthStartDate(date) {
    var newDate = new Date(date);
    newDate.setDate(1);
    return newDate;
}

function printMonth() {
    var today = new Date();
    var startDay = getMonthStartDate(today);
    do {
        console.log(startDay.getDate());
        console.log(week[startDay.getDay()]);
        startDay = getNextDate(startDay);
    }while(startDay.getDate() != 1);
}
printMonth();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号