PHP中的日期加减方法示例


Posted in PHP onAugust 21, 2014

几乎所有从事程序开发的程序员都遇到时间处理问题,PHP开发也一样,幸运的是PHP提供了很多关于日期时间函数。只要经常使用这些函数,搭配使用,日期时间处理上就熟能生巧了。

今天要讲的这个例子,需求是这样的。得知某个日期时间,

如:2012-04-25 10:10:00

我要在这个日期时间的基础上加上5个月并返回处理后的日期

结果:2012-04-25 10:10:00 加5个月等于 2012-09-25 10:10:00

这个需求看似简单,但还是有点棘手,因为PHP没有直接提供yyyy-mm-dd hh:ii:ss 这样格式的日期时间进行加减,所以只能通过时间戳来实现。时间戳是程序换算的标准格式,精确到秒。PHP可以将多种日期格式转换为时间戳,又可以把时间戳转换回各种日期格式,结合这两个特点我们大致实现的步骤有三步,先把原来时间转换成时间戳,然后进行加减,最后转换回日期格式。

当然,这是实现原理,结合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;

?>

关于date()函数与strtotime()函数的使用,这里就不详细介绍了。需要的童鞋可以看我以前的相关函数介绍文章或者到php.net去看手册均可。
PHP 相关文章推荐
PHP学习之PHP表达式
Oct 09 PHP
PHP面向对象编程快速入门
Dec 14 PHP
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
PHP下几种删除目录的方法总结
Aug 19 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
Ajax实现对静态页面的文章访问统计功能示例
Oct 10 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
PHP中比较时间大小实例
Aug 21 #PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 #PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 #PHP
PHP实现的多彩标签效果代码分享
Aug 21 #PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 #PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 #PHP
个人写的PHP验证码生成类分享
Aug 21 #PHP
You might like
php实现下载限制速度示例分享
2014/02/13 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
python threading模块操作多线程介绍
2015/04/08 Python
Python实现基本线性数据结构
2016/08/22 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
老师的检讨书
2014/02/23 职场文书
英文请假条
2014/04/11 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
六年级学生期末评语
2014/12/26 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
PHP获取学生成绩的方法
2021/11/17 PHP