记PHP第几周和日期转换的坑

PHP 获取某年第几周的开始日期和结束日期的实例 下面小编就为大家分享一篇PHP 获取某年第几周的开始日期和结束日期的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 立即下载

项目中有个功能是周报生成,周报里会填写这一周的事件。写周报时,会判断今天属于今年第几周,然后决定写到哪周的周报中,周报简介中会显示这周包含哪几天

判断属于今年第几周代码:

echo strftime("%Y-%W",time());

这个功能默默的运行着,没给我添麻烦。。。直到刚跨入2016年发现一个诡异的坑。

周报文件名字包含时间,格式为strftime("%Y-%W",”本地当前时间时间戳“)。

周报中出现2016-00这样格式的文件,但是那个周报简介中包含的天数却为:1970-01-01至1970-01-07。


原来,strftime("%Y-%W",timestamp)的计算方法是这样的:从一月一号开始往后算,如果这一天不是星期一,就属于第0周,直到星期一的时候,就开始计算为第一周,拿2016年一月一号算:2016-1-1到2016-1-3都属于第0周,2016-1-4第一周。。

但是,strtotime("2016-W00")就会解析失败,如果不是第0周就没问题,比如:echo date("Y-m-d",strtotime("2016-W01"));会输出“2016-01-04”,这不扯淡么。。

所以只好自己计算了。。具体计算方法参照outlook的计算方法,不同的是我们这第一周第一天是星期一,outlook第一周第一天是星期天。

具体的计算方法是这样的:如果一年最后几天的那个星期一到星期天包含下一年的日期,那么这一周就算为下一年的第一周,拿2016年举例:第一周的日期是:2015-12-28到2016-01-3,第二周日期:2016-01-4到2016-01-10。

下面是根据年和第几周计算这周的星期一日期:

//这个函数用来获取$year年第一周的星期一的日期
function get_firstday_of_firstweek($year){
//计算这一年第一天星期几,范围0-6,分别是星期日到星期六
	$tm_wday = strptime("$year-01-01","%Y-%m-%d")['tm_wday'];
	$tm_wday = $tm_wday == 0 ? 7 : $tm_wday;
	$tm_wday -- ;
	return strtotime("$year-01-01 - $tm_wday days");
}

function get_firstday_of_week($year,$week){
//计算这一周星期一距第一年第一周的星期一多少天
	$days = ($week - 1)*7;
	$firstday_of_firstweek = get_firstday_of_firstweek($year);
	$date_str = date("Y-m-d",$firstday_of_firstweek);
//加上天数就获取到这一周星期一的日期了
	return strtotime("$date_str + $days days");
}



获取到了这一周星期一,再加6天就是这一周的星期天了


从日期判断这一天属于多少周计算方法类似,先计算第一周的星期一的日期,然后判断这一天距第一周的星期一多少天,整除7计算第几周,只是要判断下这一周是否包含下一年的日期,如果包含则这一周就是下一年的第一周了


本人出于个人兴趣,创建了一个个人公众号,每天筛选国外网友发现的有趣的事情推送到公众号,欢迎关注!


NLM去噪算法:原理、优化与医学图像处理实战 本文深入解析NLM去噪算法的核心原理及其在医学图像处理中的优化应用。通过全局自相似性计算,NLM算法有效抑制噪声并保留细节,特别适用于超声图像斑点噪声处理。文章还介绍了积分图像和傅里叶变换等优化技巧,显著提升计算效率,并分享医学影像项目中的实用调参经验。 阅读详情

相关推荐

避坑指南:在Ubuntu 22.04上配置UR5e与ROS2 Humble真机通信的完整流程

本文详细介绍了在Ubuntu 22.04上配置UR5e机械臂与ROS2 Humble真机通信的完整流程,包括环境准备、网络配置、URCap安装、ROS2驱动部署及控制器状态验证等关键步骤。特别针对常见问题如网络连接失败、驱动启动错误等提供了实用解决方案,帮助工程师高效完成UR5e与ROS2的集成工作。

weixin_30790841的博客 463

php计算第几周,PHP计算某时间段内有几个周及某时间为今年第几周 - end

...6个月)时,必须满足以下业务要求: 如果end_at早于当前时间,则设置start_at为当前时间,end_at为当前时间加上续买的月数 如果end_at等于或晚于当前时间,则设置end_at=end_at+续买的月数 续买...PHP计算某时间段内有几个周及某时间为今年第几周函数date_default_timezone_set('PRC');function count_wee...

weixin_39669701的博客 704

双足步行机器人的ZMP与CoP检测

静态步行与动态步行   机器人步态分为静态步行和动态步行。当机器人做静态步行运动时,身体的各个部分运动速度很小,机器人的整体稳定性较易控制。静态步行稳定性采用机器人的重心地面投影点(Center of Gravity,简称CoG)作为稳定性标准,这种判定方法适用于运动较为缓慢的情况。如果机器人采用的是一种高速运动的步行方式,则称之为动态步行。当机器人进行动态步行时,其重心的位置和加速度的大小时...

weixin_34112208的博客 5906

mysql 第几周 时间戳_php时间戳函数实现计算第几周,以及当天所在周的具体日期范围...

<html><script language="javascript">function showdate(){c = new Date(2008,1,29);//输入开学的日期.注意,月份是从0-11;comper=c.getTime();//以2008年2月29日作为上半学期结束。然后记录新的开学日期var now= new Date();//获取当前时间var d_n...

weixin_34352414的博客 248

FineReport V11.0安装避坑指南:从下载到激活的完整流程(附百度网盘链接)

本文提供FineReport V11.0从下载、安装到激活的完整避坑指南。详细解析了部署前的环境准备、安装过程中的JVM内存等核心配置、激活流程以及安装后的优化与常见问题排查,旨在帮助用户一次部署成功,确保企业级报表平台的稳定运行。

echo99的专栏 1192

腾讯地图自定义瓦片地图开发实战:从坐标定位到图层融合

本文详细介绍了腾讯地图自定义瓦片地图开发的全流程,从坐标定位到图层融合的实战技巧。通过具体代码示例和常见问题解决方案,帮助开发者快速掌握腾讯地图API的自定义瓦片功能,实现室内外地图的无缝衔接和特殊图层的叠加展示。

weixin_42526015的博客 170

php 获取一周的第几天,php 返回今天是第几个星期几

/*** 返回日期的是第几个星期几* @param number $style 风格* @return 返回字符串或者 用于计算的数值*/function get_day_week($data = false,$style = 0){if($data){$data = $data;}else{$data = date(‘y-m-d‘);}$dayf = date(‘w‘,strtotime(dat...

weixin_33363025的博客 352

TC3XX - MCAL知识点(三):MCU EB-tresos配置说明及代码浅析

AURIX 2G Tc3xx的配置相较AURIX 1G Tc2xx来讲简化了许多,但是依赖于数据手册的理解来讲整个MCU功能做了较大增强,此处先简单的介绍一下,本文前期先补充介绍一下英飞凌手册的阅读规则,因为后面的文章会基于此文的一些缩写进行截图寄存器之类的。MCU在AUTOSAR架构里面的图示如下MCU驱动程序负责配置SCU、GTM、CCU6、GPT12和STM外设。驱动程序提供由AUTOSAR指定的运行时服务。

梦想技术家 2872

php中date('W’)输出周数与实际周数不符合问题

date('W'): ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 开发时遇到这样一个问题: var_dump(date('W',strtotime('2019-1-1'))); var_dump(date('W',strtotime('2018-12-31'))); 输出结果: string(2) "01" string(2) "01" ...

corbin 7237

AI辅助Android开发:从传统到智能化的技术演进

AI辅助开发的核心在于利用算法模型自动化或优化传统任务。在Android开发中,AI可应用于需求分析、设计、编码、测试和维护各阶段。需求分析:AI工具如基于NLP的模型(例如GPT系列)可解析用户需求文档,自动生成用户故事和原型设计。假设产品需求为“开发一个航班查询应用”,AI能提取关键词,输出UML图或伪代码。代码生成:使用AI代码助手(如GitHub Copilot),工程师输入自然语言描述,AI生成Java/Kotlin代码片段。

郑伟强dev的专栏 137

一句话看懂 vibing-steampunk

摘要: vibing-steampunk(vsp)是一个连接SAP ABAP开发工具(ADT)与AI编码代理(如Claude、GitHub Copilot)的桥梁,通过MCP协议实现自动化代码读写、调试和部署。它利用ADT API直接访问SAP系统,绕过传统GUI操作,支持ECC和S/4HANA等环境。工具提供包分析、依赖检查、LUW行为识别等功能,显著提升ABAP项目维护效率。其创新Hyperfocused模式和方法级编辑大幅降低token消耗,而上下文压缩技术则优化了AI对ABAP代码的理解能力,特别适

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 114

php 计算一年后的时间,php 计算一年有几周 每周的开始和时间

function getWeekStartAndEnd ($year,$week) {header("Content-type:text/html;charset=utf-8");date_default_timezone_set("Asia/Shanghai");$year = (int)$year;$week = (int)$week;//按给定的年份计算本年周总数$date = new Da...

weixin_35886636的博客 326

定位教程7---旋转中心标定之方法二

手算相机相对机器人关系

Quintin 6230

php第几期,记PHP第几周和日期转换的坑

项目中有个功能是周报生成,周报里会填写这一周的事件。写周报时,会判断今天属于今年第几周,然后决定写到哪周的周报中,周报简介中会显示这周包含哪几天判断属于今年第几周代码:echo strftime("%Y-%W",time());这个功能默默的运行着,没给我添麻烦。。。直到刚跨入2016年发现一个诡异的坑。周报文件名字包含时间,格式为strftime("%Y-%W",”本地当前时间时间戳“)。周报中...

weixin_30066779的博客 478

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

获取某个日期是一年中的第几周

/** * 获取日期是一年中的第几周 * @param string $date * @return float */ public static function getWeeks($date = '') { /** * 2007年 第一周 是 01-01 到 01 - 07 因为第一天就是星期一 6 ...

weixin_30432579的博客 1665

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

php 获取两个日期相隔几周,怎么样计算2个日期之间相差几周

你的位置:问答吧-> PHP基础-> 问题详情怎么样计算2个日期之间相差几周如题如果2个日期在同一年中的话可以通过date("W",unix时间戳)来计算但特别麻烦的就是2个日期不是在同一年中,可能2个日期相差几年请高手指教作者: gengle53022发布时间: 2007-04-18可以先算相差多少天 然后再...

weixin_30368405的博客 681

mysql 第几周 时间戳_PHP获取某年第几周的开始日期和结束日期

http://blog.youkuaiyun.com/qq_27080247/article/details/50835956/*** 获取某年第几周的开始日期和结束日期* @param int $year* @param int $week 第几周;*/public function weekday($year,$week=1){$year_start = mktime(0,0,0,1,1,$year);$...

weixin_42119866的博客 229

PHP日期转换函数

date函数 使用 Date/Time 函数通过不同的方式来格式化日期和时间。 语法: date(format,timestamp); format格式: format 字符 说明 返回值例子 日 — — d 月份中的第几天,有前导零的 2 位数字 01 到 31 D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun j 月份中的第几天,没有前导零 1 到 31 l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday N ISO-86

a549654065的博客 728

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

获取某年第几周的开始日期和结束日期1,话不多说,直接上代码: public static function weekday($year,$week) { $year_start = mktime(0,0,0,1,1,$year); $year_end = mktime(0,0,0,12,31,$year); // 判断第一天是否为第一周的开始

笨小蛋的博客 2377

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

http://blog.youkuaiyun.com/qq_27080247/article/details/50835956 /** * 获取某年第几周的开始日期和结束日期 * @param int $year * @param int $week 第几周; */ public function weekday($year,$week=...

weixin_34364071的博客 250

PHP日期函数date格式转换实例教程

在PHP网站开发建设中经常需要对日期、时间进行处理,PHP提供了多种日期、时间函数方便PHP开发者对日期、时间进行计算、格式转换。掌握PHP日期函数非常必要,也为处理PHP日期函数与Mysql数据库日期之间的格式转换打下基础。作为PHP日期函数的开篇教程,我以PHP实例教程介绍P

瞧字不识 5177

date 获取当年第几周,当前年份

获取周 date('W'); 获取年 date('Y'); 下篇有 周数时间跨年问题: https://blog.youkuaiyun.com/weixin_42262935/article/details/89676849 参考地址:https://www.php.net/manual/zh/function.date.php d 月份中的第几天,有前导零的 2 位数...

weixin_42262935的博客 3925

PHP中的时间和日期

介绍了php中的时间和日期函数,最后做了一个小demo——小日历给大家做参考。

技术路漫漫 1411

PHP 时间和日期 总结

PHP 时间戳 UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。 可以使用time()函数来获取。 日期转换为时间戳 PHP 提供了函数可以方便的将各种形式的日期转换为时间戳,该类函数主要是: strtotime():将任何英文文本的日期时间描述解析为时间戳。 mkti...

125

PHP中的日期和时间

UNIX时间戳UNIX时间戳是大多数计算机中保存和表示日期和时间的一种标准格式。UNIX时间戳以为32位置的证书表示格林威治标准时间。它是从1970年1月1日开始,到当前时间所经过的秒数。因为UNIX是一个32位的整数,所以处理1902年以前或2038年后的日期会出现一些问题。而Windows系统的时间戳不能为负数,这点需要尤其注意。在 PHP中获取日期和时间时间time()函数与mktime()函

sinat_33994744的博客 419

PHP求日期函数公式,PHP中日期和时间函数简介

PHP中日期和时间相关函数简介一、UNIX时间戳在当前大多数的UNIX系统中,保存当前日期和时间的方法是:保存格林尼治标准时间从1970年1月1日零点起到当前时刻的秒数,以32为整列表示。1970年1月1日零点也称为UNIX纪元。在Windows系统下也可以使用UNIX时间戳,简称时间戳,但如果时间在1970年以前或2038年以后,处理的时候可能会出现问题。PHP在处理有些数据,特别是对数据库中时...

weixin_36330238的博客 235
上一篇: python dist-packages 和 site-packages
下一篇: How To Create a SSL Certificate on Apache for Ubuntu 14.04
ECHOutopia
博客等级 码龄14年 11粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值