php 返回某个月的 每周几有几天
不得不承认,这真是一个奇葩的需求,无奈写个类凑活用用. 输入日期格式或者 时间戳,返回当月有多少个周一.周二.周三.....周日;
思路就是 找到这个月有多少天,在便利判断. 稍微考虑下闰年的情况
前面的获取一个月有多少天,没事看了下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 返回某个月的 每周几有几天的更多相关文章
- SQLServer用sql语句怎么返回一个月所有的天数
可用如下sql语句: select convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) day from (select '2015-07'+ ...
- java根据年月显示每周
一.页面效果 1.展示7月份的所有周. 2.当前时间2018.08.02 , 显示到本周. 二.前端代码 1.显示层的代码 <span id="weekyear"> ...
- laravel -查询近7月走势图案例
// 获取7月前的时间$time = date('Y-m',strtotime("-0 year -7 month -0 day" ));$where['created_at'] ...
- 微信小程序——获取当天的前一个月至后一个月
看标题也不知道你有没有明白我想表达的意思,先上个动态图吧~ 需要分析: 1.获取当前日期的前一个月,后一个月和当月.比如说现在是7月5号,我需要得到6月5号至8月5号的日期,同时还要返回当前的星期. ...
- Coding源码学习第二部分(FunctionIntroManager.m)
接上篇.上篇有一个细节忘了写,在Coding_iOS-Info.plist 里面添加了一个key 是 Status bar is initially hidden Value 是 YES,在appl ...
- SqlServer与MySql的一些常用用法的差别
最近学习了一下mySql,总结一下SqlServer不同一些用法: 操作符优先级以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符具有相同的优先级.:=||, OR, XOR&& ...
- mysql5.5手册读书日记(2)
<?php /* * * MySQL_5.5中文参考手册 485开始 * * mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THE ...
- JavaScript日期对象使用总结
javascript Date日期对象的创建 创建一个日期对象: var objDate=new Date([arguments list]); 我总结了参数形式主要有以下3种: new Date(& ...
- 20135220谈愈敏Linux_总结
Linux_总结 具体博客链接 计算机是如何工作的 操作系统是如何工作的 构造一个简单的Linux系统MenuOS 系统调用(上) 系统调用(下) 进程的描述和创建 可执行程序的装载 进程的切换和系统 ...
随机推荐
- configure: error: XML configuration could not be found
运行: ./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm 之后出现 Running FastCGI Process M ...
- 拒绝switch,程序加速之函数指针数组
先看一个使用switch语句的程序: #include <stdio.h> #include <time.h> //加法 int add(int a,int b) { retu ...
- Oracle 数据块损坏与恢复具体解释
1.什么是块损坏: 所谓损坏的数据块,是指块没有採用可识别的 Oracle 格式,或者其内容在内部不一致. 通常情况下,损坏是由硬件故障或操作系统问题引起的.Oracle 数据库将损坏的块标识为&qu ...
- ORA-27301: OS failure message: Not enough space
OS:HP-UNIX ORA-27300: OS system dependent operation:fork failed with status: 12 ORA-27301: OS failu ...
- 使用NPOI实现简单的Excel导出功能
[1]NPOI是啥? NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. POI是一个开源的Java读写Excel. ...
- express搭建一个web服务器
npm install express -g express这个库可以使用了. npm install express-generator -g ...
- hdu1811 Rank of Tetris 拓扑排序+并查集
这道题是拓扑排序和并查集的综合运用. 由于排行榜是一种从高到低的排序.所以在拓扑排序的时候,如果有一次加入的入度为零的点数大于1,就有变得不确定了(UNCERTAIN). 由于只有一棵树,当树的数量大 ...
- MacType 缺字问题【转】
- PIC EEPROM问题
1.通过export出来的Hex烧录,EEPROM内容会根据Hex中关于EEPROM的定义而改变. 2.通过编译源文件烧录,如果没有勾选Preserve EEPROM on program则EEPRO ...
- 遍历及过滤 first(), last() 和 eq() filter() 和 not()
三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素.其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹 ...