不得不承认,这真是一个奇葩的需求,无奈写个类凑活用用. 输入日期格式或者 时间戳,返回当月有多少个周一.周二.周三.....周日;

思路就是 找到这个月有多少天,在便利判断. 稍微考虑下闰年的情况

前面的获取一个月有多少天,没事看了下date函数说明,蛋疼的直接有这个参数,今天在这嘲笑一下之前的草包行为.date('t');

<?php
class GAO{
public function __CONSTRUCT($time='') {
if(empty($time)) $time=time();
$time = is_int($time) ? $time : strtotime($time);
$this->year = date('Y',$time );
if(date('L',$time)) {
$this->mouths = array(
31=> array(1,3,5,7,8,10,12),
30=> array(4,6,9,11),
29=> array(2),
);
}else{
$this->mouths = array(
31=> array(1,3,5,7,8,10,12),
30=> array(4,6,9,11),
28=> array(2),
);
}
$this->mouth = date('m',$time );
}
public function week_num() {
foreach ($this->mouths as $key => $value) {
if(in_array($this->mouth, $value)) {
$n = $key;
break;
}
}
if(!isset($n) || empty($n)) {
return '天数获取失败!';
}
$result = array(1=>0,0,0,0,0,0,0);
for ($n; $n >0 ; $n--) {
switch (date('N',strtotime($this->year.'-'.$this->mouth.'-'.$n) ) ) {
case '1':
$result[1] += 1;
break;
case '2':
$result[2] += 1;
break;
case '3':
$result[3] += 1;
break;
case '4':
$result[4] += 1;
break;
case '5':
$result[5] += 1;
break;
case '6':
$result[6] += 1;
break;
case '7':
$result[7] += 1;
break;
}
}
return $result;
}
}

php 返回某个月的 每周几有几天的更多相关文章

  1. SQLServer用sql语句怎么返回一个月所有的天数

    可用如下sql语句: select convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) day from (select '2015-07'+ ...

  2. java根据年月显示每周

    一.页面效果 1.展示7月份的所有周. 2.当前时间2018.08.02  ,  显示到本周. 二.前端代码 1.显示层的代码 <span id="weekyear"> ...

  3. laravel -查询近7月走势图案例

    // 获取7月前的时间$time = date('Y-m',strtotime("-0 year -7 month -0 day" ));$where['created_at'] ...

  4. 微信小程序——获取当天的前一个月至后一个月

    看标题也不知道你有没有明白我想表达的意思,先上个动态图吧~ 需要分析: 1.获取当前日期的前一个月,后一个月和当月.比如说现在是7月5号,我需要得到6月5号至8月5号的日期,同时还要返回当前的星期. ...

  5. Coding源码学习第二部分(FunctionIntroManager.m)

    接上篇.上篇有一个细节忘了写,在Coding_iOS-Info.plist 里面添加了一个key 是 Status bar is initially hidden  Value 是 YES,在appl ...

  6. SqlServer与MySql的一些常用用法的差别

    最近学习了一下mySql,总结一下SqlServer不同一些用法: 操作符优先级以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符具有相同的优先级.:=||, OR, XOR&& ...

  7. mysql5.5手册读书日记(2)

    <?php /* * * MySQL_5.5中文参考手册 485开始 * * mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THE ...

  8. JavaScript日期对象使用总结

    javascript Date日期对象的创建 创建一个日期对象: var objDate=new Date([arguments list]); 我总结了参数形式主要有以下3种: new Date(& ...

  9. 20135220谈愈敏Linux_总结

    Linux_总结 具体博客链接 计算机是如何工作的 操作系统是如何工作的 构造一个简单的Linux系统MenuOS 系统调用(上) 系统调用(下) 进程的描述和创建 可执行程序的装载 进程的切换和系统 ...

随机推荐

  1. C语言学习笔记:15_c语言中的进制操作.c

    /* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...

  2. Android之——ContentProvider操作XML

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47682559 不多说,不废话,直接上代码,大家一看都懂得 /** * Conten ...

  3. oc3--类方法1

    // // main.m // 第一个OC类-方法 #import <Foundation/Foundation.h> /* C语言中函数分为声明和实现,OC中定义类, 就是在写类的声明和 ...

  4. hdoj--5620--KK's Steel(斐波那契数)

    KK's Steel Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  5. friend(hdoj 1719)

    Friend Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. Hdu-6253 2017CCPC-Final K.Knightmare 规律

    题面 题意:给你一个无限大的棋盘,一个象棋中的马,问你这个马,飞n步后,可能的位置有多少种? 题解:看到题,就想先打表试试,于是先写个暴力(枚举每个位置,是马就飞周围8个格子,注意不要在同个循环里把格 ...

  7. Linux 定时任务 Crontab按秒执行

    目前在crontab中最小执行时间单位为分钟. 如果需要按秒来执行,有以下两种方法: 方法一:通过sleep来实现 例: 1.创建test.php文件,这里测试通过打印时间好区分. <?php ...

  8. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

  9. 第5章分布式系统模式 Broker(代理程序)

    许多复杂的软件系统运行在多个处理器或分布式计算机上.将软件分布在多台计算机上的原因有多种,例如: 分布式系统可以利用多个 CPU 或一群低成本计算机的计算能力. 某个软件可能仅在特定计算机上可用. 出 ...

  10. Android 微信分享与QQ分享功能

    微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~ 一.微信分享 微信分享功能需要先在微信开放平台注册应用并 ...