PHP 时间函数集合
计算指定日期的前几天,几个月或者几年的函数
$a = '2014/08/21';
echo date( "Y-m-d", strtotime( "-6 month  ".$a."" ) );
获得当前月的制定日期,比如说20号的
echo date('Y-m-20 H:i:s',time());
获得系统时间前一个月的第一天
echo 'next_1='.date( "Y-m-1", strtotime( "-1 month".date("Y-m-d",time())."" ) ).'<br>';
获得系统时间前一个月的最后一天
 echo 'next_20='.date( "Y-m-t", strtotime( "-1 month".date("Y-m-d",time())."" ) );
注意:曾经遇到过这样的问题,
$sagyoYmd = '2014-11-29';
 $sy_sagyo_ymd_max = date( "Y-m-1", strtotime(".$sagyoYmd.") );
 $sy_sagyo_ymd_max = date( "Y-m-1", strtotime( "-0 month".$sagyoYmd."" ) );
 $sy_sagyo_ymd_max = date( "Y-m-1", strtotime($sagyoYmd) );
输出当天某个时间点的时间戳:
strtotime("01:00:00")<=time()&& time()<=strtotime("02:00:00")
一个时间跨度的算法,计算一个时间,加上一个int类型的区间,如果是节日,周末就跳过,否者就累加:
function GetSyori_Yotei($koCd){
		$time_count = "";
      	$i = 0;
      	$con=dbcon();
	    	while(true){
	    	   $furikomi_syori = "";	
                      //得出系统时间的第二天的星期数
		    	$syori_w = date("w", strtotime("+1 day")+ 86400*$i);
                      //得出系统时间的第二天的年-月-日
		    	$syori_check = date("Y-m-d", strtotime("+1 day")+ 86400*$i);
                      //对上面得出的这个时间进行验证,是否属于一个节假日
      		    	$holiday_name_syori = holidayCheck($syori_check);
		    	if($syori_w!="6" && $syori_w!="0" && empty($holiday_name_syori)){
		    	   		$furikomi_syori = date("Y-m-d", strtotime("+1 day") + 86400*$i);
		    	   		////振込予定日	 -----------------start
		    	   			//SPS申請振込間営業日数
							$sps_days = GetSps_days($koCd);
		    	   			$j = 1;
		    	   			$k = 0;
		    	   			$con=dbcon();
		    	   			if($sps_days <= "0" || $sps_days ==null){
		    	   				//振込予定日 = 振込処理日
		    	   				$furikomi_yotei = $furikomi_syori;
		    	   			}
		    	   			while($k < $sps_days){
			    	   		   $yotei_w = date("w", strtotime("+1 day") + 86400*$i + 86400*$j);
			    	   		   $yotei_check = date("Y-m-d", strtotime("+1 day")+ 86400*$i + 86400*$j);
			    			   $holiday_name_yotei = holidayCheck($yotei_check);
		    	   				if($yotei_w!="6" && $yotei_w!="0" && empty($holiday_name_yotei)){
		    	   						$furikomi_yotei = date("Y-m-d", strtotime("+1 day") + 86400*$i + 86400*$j);
		    	   				}else{
		    	   					$j++;
		    	   					continue;
		    	   				}
		    	   				$k++;
		    	   				$j++;
		    	   			}
		    	   		////振込予定日	 -----------------end
		    	    	break;
			    }
			     $i++;
	    	}
	    	$time_count = $furikomi_syori.':'. $furikomi_yotei;
    	return $time_count;
    }
/** yyyy-mm-dd =>dd;
* 1 - 31
* **/
function Day($time){
$Day = "";
if(!empty($time)){
$Day = date("j",strtotime($time));
}
return $Day;
}
/** yyyy-mm-dd =>dd;
* 2001
* **/
function Year($time){
$Year = "";
if(!empty($time)){
$Year = date("Y",strtotime($time));
}
return $Year;
}
/** yyyy-mm-dd =>mm;
* 01-12
* **/
function Month($time){
$Month = "";
if(!empty($time)){
$Month = date("m",strtotime($time));
}
return $Month;
}
输出的结果,在某些环境下竟然是不一样的情况,就是因为多加了个双引号和‘..’导致的,因此,这里需要注意
自己写的一个关于时间计算的函数,一个给定的时间,加一个月,加一年,减一个小时等。
/**yyyy-mm-dd =>yyyy-mm+1-dd;
* 1995-1-31 => 1995-2-28
* **/
function DateAdd($interval,$number,$time){
$dateadd = ""; if(!empty($time)){
$param = $number ;
if($interval == "h"){
$param .= " hour" ;
}elseif($interval == "m"){
$param .= " month" ;
}elseif($interval == "d"){
$param .= " day" ;
}elseif($interval == "y"){
$param .= " year" ;
}elseif($interval == "w"){
$param .= " week" ;
}elseif($interval == "mi"){
$param .= " minute" ;
}
$dateadd = date( "Y-m-d", strtotime($param.$time) );
} return $dateadd; }
调用方法:
DateAdd('m','+1','2016-07-28');
刚好得出时间 :2016-08-28
这里有点东西需要注意,这里的计算是按+30天去算的,如果你的时间是2016-07-31的话,找下一个月就是2016-07-01。
PHP 时间函数集合的更多相关文章
- Mysql函数集合
		Mysql提供了很多函数 提供的常用函数集合 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整 ... 
- 20101102--SQL字符串函数 ,日期和时间函数
		--------------------字符串函数------------------------- --ASCII 返回字符串的首字母的ASCII编码 select ASCII('w') selec ... 
- 性能学习笔记之四--事务,思考时间,检查点,集合点和手写lr接口
		一.事物,思考时间,检查点,集合点 1.事务 lr里面的事物是lr运行脚本的基础.lr里面 要测试的三个维度都以事物为单位,所以一定要有事物.事务的概念贯穿loadrunner的使用,比如我们说的响应 ... 
- C++中的时间函数
		C++获取时间函数众多,何时该用什么函数,拿到的是什么时间?该怎么用?很多人都会混淆. 本文是本人经历了几款游戏客户端和服务器开发后,对游戏中时间获取的一点总结. 最早学习游戏客户端时,为了获取最精确 ... 
- 借助JavaScript中的时间函数改变Html中Table边框的颜色
		借助JavaScript中的时间函数改变Html中Table边框的颜色 <html> <head> <meta http-equiv="Content-Type ... 
- Loadrunner时间函数、用时间生成订单编号例子
		Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ... 
- Sql Server函数全解(四)日期和时间函数
		日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ... 
- Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数
		dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期 ... 
- mysql与oracle的日期/时间函数小结
		前言 本文的日期/时间全部格式化为”2016-01-01 01:01:01“形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时间转字符串函数:to ... 
随机推荐
- Cursor的moveToFirst和moveToNext
			参考: http://blog.csdn.net/kerlw/article/details/6126448 总结: 查询得到的cursor是指向第一条记录之前的,因此查询得到cursor后第一次调用 ... 
- 深入Android开发之--理解View#onTouchEvent
			一:前言 View是Android中最基本的UI单元. 当一个View接收到了触碰事件时,会调用其onTouchEvent方法.方法声明如下: ? 1 2 3 4 5 6 7 /** * Imple ... 
- u-boot使用
			下载与烧写 使用U-boot将映像文件烧写到板上的Flash,一般步骤是: (1)通过网络.串口.U盘.SD卡等方式将文件传输到SDRAM: (2)使用Nand Flash或Nor Flash相关的读 ... 
- poj2154
			利用bzoj2705的结论我们很容易优化这道等价类计数的问题 sum(n^gcd(i,n))/n mod p (1<=i<=n) =sum(phi(n/L)*n^L)/n mod p (n ... 
- sharepoint 2010 列表数据分页控件介绍 pagination UserControl
			转:http://blog.csdn.net/chenxinxian/article/details/8714391 这里主要是介绍下最近开发的一个sharepoint列表或者文档库的分页控件,并且把 ... 
- MD5Helper辅助类
			DES加密和解密 public class MD5Helper { ///DES加密 ///sKey public string MD5Encrypt(string pToEncrypt, strin ... 
- Qt学习之路(1)------Qt常用类用法说明
			Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream> int main() { std::cout <&l ... 
- YII 权限管理
			CREATE TABLE IF NOT EXISTS `admin_role` ( `id` ) unsigned NOT NULL auto_increment, `name` ) NOT NULL ... 
- PAT 1016. Phone Bills
			A long-distance telephone company charges its customers by the following rules: Making a long-distan ... 
- 《Effective C++》学习笔记条款13 以对象管理资源
			条款 13 :以对象管理资源 例: voidf() { Investment *pInv = createInvestment(); ... ... 
