获取每月的周信息

PHP版:

<?php
$current_year=2017;
$current_month=10;

$firstday = strtotime($current_year.'-'.$current_month.'-01');
//计算本月头一天的星期一
$monday=$firstday-86400*(date('N',$firstday)-1);//计算第一个周一的日期
//由于每个月只有四周 让 $i 从 1 到 5 增加即可
for ($i=1; $i <= 5; $i++) {
    $start=date("Y-m-d",$monday+($i-1)*86400*7);//起始周一
    $end=date("Y-m-d",$monday+$i*86399*7);//结束周日
    if(date('m',$monday+$i*86399*7)!=$current_month)
    {
        continue;
    }
    echo '第'.$i.'周 '.$start.' ~ '.$end."<br/>";//开始结束放入数组
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>

<body>
</body>
</html>

 

JS版:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
/**
 * 获取当前时间
 */
function p(s) {
    return s < 10 ? '0' + s : s;
}

//根据时间获取当前月的周数,每周的周日为一周的开始
function getWeekByMonth(date) {
    
    var y = date.getFullYear();
    var m = date.getMonth(); //月份
    var d = date.getDate();
    var now2 = y + '-' + p(m) + "-" + p(d);
    
    //获取本月1号对应的周数
    var monOneWeek = new Date(y, m - 1, 1);
    var week = monOneWeek.getDay();
    //获取本月的天数
    var monOneDay = new Date(y, m, 1);
    var date_count = (new Date(monOneDay.getTime() - 1000 * 60 * 60 * 24)).getDate();
    
    var days = date_count;
    var mod = 7 - week;
    var count = 1;
    var start = 1; //起始日期 1 号开始
    var s = "",
    ss = "";
    var end = start + mod - 1; //截止日期
    while (days >= 0) {
        //var end = start + 6;
        end = end > date_count ? date_count : end;
        s += "第" + count + "周:" + y + "年" + p(m) + "月" + "(" + p(start) + "-" + p(end) + ");" + "<br>";
        start = end + 1;
        end += 7;
        days -= 7;
        ss += days + ",";
        count++;
    }
    return s;
}
function getData() {
    //2017年10月1日
    var date5 = new Date(2017, 10, 01);
    document.write(getWeekByMonth(date5));
    
}
getData();

</script>
</head>

<body>
</body>
</html>

 

posted @ 2017-10-17 21:47  Liu66~  阅读(187)  评论(0编辑  收藏  举报