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与javascript对多项选择的处理
Oct 09 PHP
又一个php 分页类实现代码
Dec 03 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
php 函数使用可变数量的参数方法
May 02 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 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缓存技术的使用说明
2011/08/06 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
python网络编程学习笔记(四):域名系统
2014/06/09 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python操作oracle的完整教程分享
2018/01/30 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript