当前位置: 首页 > news >正文

php 第几周的起止日期,PHP 获取某年第几周的开始日期和结束日期的实例

实例如下所示:

/**

* 获取某年第几周的开始日期和结束日期

* @param int $year

* @param int $week 第几周;

*/

public function weekday($year,$week=1){

$year_start = mktime(0,0,0,1,1,$year);

$year_end = mktime(0,0,0,12,31,$year);

// 判断第一天是否为第一周的开始

if (intval(date('W',$year_start))===1){

$start = $year_start;//把第一天做为第一周的开始

}else{

$week++;

$start = strtotime('+1 monday',$year_start);//把第一个周一作为开始

}

// 第几周的开始时间

if ($week===1){

$weekday['start'] = $start;

}else{

$weekday['start'] = strtotime('+'.($week-0).' monday',$start);

}

// 第几周的结束时间

$weekday['end'] = strtotime('+1 sunday',$weekday['start']);

if (date('Y',$weekday['end'])!=$year){

$weekday['end'] = $year_end;

}

return $weekday;

}

/**

* 计算一年有多少周,每周从星期一开始,

* 如果最后一天在周四后(包括周四)算完整的一周,否则不计入当年的最后一周

* 如果第一天在周四前(包括周四)算完整的一周,否则不计入当年的第一周

* @param int $year

* return int

*/

public function week($year){

$year_start = mktime(0,0,0,1,1,$year);

$year_end = mktime(0,0,0,12,31,$year);

if (intval(date('W',$year_end))===1){

return date('W',strtotime('last week',$year_end));

}else{

return date('W',$year_end);

}

}

以上这篇PHP 获取某年第几周的开始日期和结束日期的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章:

  • matlab 数学符号输入,matlab输入数学符号
  • matlab怎么求解非线性方程组,请教,如何利用Matlab求解复杂的非线性方程组
  • php自定义函数变量,php自定义函数之变量作用域
  • python 判断文件类型,利用Python获取文件类型
  • php将ip写入文件,php – 允许仅从1个IP地址访问所有文件,并将所有其他文件重定向到其他文件...
  • oracle中blob的表导出,把表中的blob字段导出,并且用一个唯一名称来命名导出的文件。...
  • linux zip压缩排除目录,Linux系统zip压缩命令详细参数,附文件排除选项的正确用法...
  • linux 内核版本 4.4,Linux Kernel 4.4 正式发布下载
  • linux内核找不到sata分区表,分区表坏了,我的linux不见了
  • amd支持的Linux内核,Linux Kernel 4.7.2版本发布:改善对AMDGPU和ARM64的支持
  • linux grep 获取当天时间段,linux – 如何在一个时间范围内grep httpd error_log?
  • Linux内核i2c通信,绝对干货!基于Cortex-A9,分析Linux内核I2C架构
  • linux中文本文件过滤搜索,Linux命令(八)过滤文本 grep
  • linux获得ram地址,Linux 如何查看系統硬體的記憶體(RAM)資訊
  • linux qt多屏幕输出,QT5 Ubuntu下c++调用linux命令、显示输出、执行多条命令
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 30天自制操作系统-2
  • Angular2开发踩坑系列-生产环境编译
  • Apache Pulsar 2.1 重磅发布
  • Computed property XXX was assigned to but it has no setter
  • C语言笔记(第一章:C语言编程)
  • javascript数组去重/查找/插入/删除
  • Linux gpio口使用方法
  • mysql 5.6 原生Online DDL解析
  • 彻底搞懂浏览器Event-loop
  • 当SetTimeout遇到了字符串
  • 读懂package.json -- 依赖管理
  • 复习Javascript专题(四):js中的深浅拷贝
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 事件委托的小应用
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • Java性能优化之JVM GC(垃圾回收机制)
  • puppet连载22:define用法
  • 第二十章:异步和文件I/O.(二十三)
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (分布式缓存)Redis哨兵
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • .NET 5种线程安全集合
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @angular/cli项目构建--http(2)
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [BJDCTF2020]The mystery of ip1
  • [HackMyVM]靶场Crossbow
  • [IE技巧] 如何让IE 启动的时候不加载任何插件
  • [javaSE] 看知乎学习工厂模式
  • [Java开发之路](14)反射机制
  • [leetcode] 66. 加一
  • [LeetCode]--61. Rotate List
  • [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法
  • [MySQL]数据库基础