-
PHP日期时间加减程序代码详解
今天我们来看在php中计算两个时间之间的时间差.下面我们直接使用了data,strtotime与time三个函数就实现了.有需要的朋友可参考,今天要讲的这个例子,需求是这样的,得知某个日期时间,如:2012-04-25 10:10:00,我要在这个日期时间的基础上加上5个月并返回处理后的日期,结果:2012-04-25 10:10:00 加5个月等于 2012-09-25 10:10:00
结合PHP函数date()与strtotime()两个函数来实现大致也是这个意思,代码如下:
- <?php
- /**
- * PHP里的日期加减方法
- * 琼台老屋
- */
- // 第一步,假设有一个时间
- $a = '2012-04-25 10:10:00';
- // 第二步,获得这个日期的时间戳
- $a_time = strtotime($a);
- // 第三步,获得加五个月后的时间戳
- $b_time = strtotime('+5 Month',$a_time);
- // 第四部,把时间戳转换回日期格式
- $b = date('Y-m-d H:i:s',$b_time);
- echo '这是加了五个月后的日期'.$b;
- // 如果你觉得以上代码过长也可以一行搞定
- $b = date('Y-m-d H:i:s',strtotime('+'.$time.' Month',strtotime($a)));
- echo '这是加了五个月后的日期'.$b;
- ?>
常用的计算时间,代码如下:
- <?php
- date_default_timezone_set('PRC'); //默认时区
- echo "今天:",date("Y-m-d",time()),"<br>";
- echo "今天:",date("Y-m-d",strtotime("18 june 2008")),"<br>";
- echo "昨天:",date("Y-m-d",strtotime("-1 day")), "<br>";
- echo "明天:",date("Y-m-d",strtotime("+1 day")), "<br>";
- echo "一周后:",date("Y-m-d",strtotime("+1 week")), "<br>";
- echo "一周零两天四小时两秒后:",date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")), "<br>";
- echo "下个星期四:",date("Y-m-d",strtotime("next Thursday")), "<br>";
- echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>";
- echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>";
- echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>";
- echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>";
- ?>
- //输出结果
- //今天:2013-06-07
- //今天:2008-06-18
- //昨天:2013-06-06
- //明天:2013-06-08
- //一周后:2013-06-14
- //一周零两天四小时两秒后:2013-06-16 18:18:29
- //下个星期四:2013-06-13
- //上个周一:2013-06-03
- //一个月前:2013-05-07
- //一个月后:2013-07-07
- //十年后:2023-06-07
这里再看一些日期加减函数,代码如下:
- //获取当天的星期(1-7)
- function GetWeek($times)
- {
- $res = date('w', strtotime($times));
- if($res==0)
- $res=7;
- return $res;
- }
- //获取当天时间
- function GetTime($times)
- {
- $res = date('H:i', strtotime($times));
- return $res;
- }
- //获取现在过几月的的时间
- function GetMonth($Month,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$Month months"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$Month months"));
- return $res;
- }
- //获取当前时间
- function GetCurrentDateTime()
- {
- $res=date("Y-m-d H:i:s",time());
- return $res;
- }
- //获取当前时间隔几小时之前或之后的时间
- function GetDiffHours($hours,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$hours hour"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$hours hour"));
- return $res;
- }
- //间隔几分钟之前或之后的时间
- function GetDiffMinute($Minute,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$Minute minute"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$Minute minute"));
- return $res;
- }
- //间隔几秒之前或之后的时间
- function GetDiffSec($sec,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$sec second"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$sec second"));
- return $res;
- }
- //间隔几个星期之前或之后的时间
- function GetDiffWeek($Week,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$Week week"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$Week week"));
- return $res;
- }
- // 间隔几天之间的时间
- function GetDiffDays($days,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$days day"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$days day"));
- return $res;
- }
- //间隔几年之前或之后的时间
- function GetDiffYears($year,$type='l')
- {
- if(!strcmp($type,'b'))
- $res=date("Y-m-d H:i:s",strtotime("-$year year"));
- if(!strcmp($type,'l'))
- $res=date("Y-m-d H:i:s",strtotime("+$year year"));
- return $res;
- }
出处:http://www.phpfensi.com/php/20140117/1428.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式