当前位置:编程学习 > php >>

在编程PHP时间加减的函数和源代码赏析

一个处理PHP中时间加减的函数

在开发过程当中对于时间的操作很是让人头疼。在PHP文档中找到了一个很好的函数,可以对时间进行加减,还是很有意思的。
int   strtotime ( string time [, int now] ) 
返回类型 int
函数可用于时间转换和加减。
下面将举个小例子,获得当前时间加上一周后的时间。
例子:
 
//获得当前时间   
//date()格式化时间返回String类型。   
$current_date = date(’Y-m-d’,time());   
//根据当前时间加一周后   
$weekLater = date(’Y-m-d’,strtotime("$current_date + 1 week"));   
echo $weekLate;   
// 2009-05-26 加一天的日期   
$tomorrow = date(’Y-m-d’,strtotime("2009-05-26 + 1 day"));   
echo $tomorrow; // 2009-05-27 

======================================================

在PHP中如何实现时间的加减?

-----------------------------------------------------------------------------------------

我想用PHP来实现一个根据距今天时间长短来决定是否弹出一个窗口,可是在做时间加减的时候却总不能取到一个正确的值,请问在PHP中应该如何来实现? 
 
--------------------------------------------------------------- 
 
下面的代码是dateadd.inc 
<?   
function  DateAdd  ($interval,  $number,  $date)  {   
$date_time_array  =  getdate($date);   
$hours  =  $date_time_array["hours"];   
$minutes  =  $date_time_array["minutes"];   
$seconds  =  $date_time_array["seconds"];   
$month  =  $date_time_array["mon"];   
$day  =  $date_time_array["mday"];   
$year  =  $date_time_array["year"];   
switch  ($interval)  {   
case  "yyyy":  $year  +=$number;  break;   
case  "q":  $month  +=($number*3);  break;   
case  "m":  $month  +=$number;  break;   
case  "y":   
case  "d":   
case  "w":  $day+=$number;  break;   
case  "ww":  $day+=($number*7);  break;   
case  "h":  $hours+=$number;  break;   
case  "n":  $minutes+=$number;  break;   
case  "s":  $seconds+=$number;  break;   
}   
$timestamp  =  mktime($hours  ,$minutes,  $seconds,$month  ,$day,  $year);   
return  $timestamp;}   
?> 
--------------------------------------------------------------- 
 
$time()是今天的时间戳 
24*60*60*1  就是一天的时间戳 
那么明天的unixtime就是$tom=$time()+24*60*60*1 
把时间戳格式显示函数就是date(); 
例如显示明天日期,格式  xxxx-xx-xx 
echo  date("Y-m-d",$tom) 
就可以了 

===========================================================

php 日期加减处理函数

<?php
echo "今天:",date('Y-m-d H:i:s'),"<br>";
echo "明天:",date('Y-m-d H:i:s',strtotime('+1 day'));
?>
上一行输出当前时间,下一行输出明天时间

这里+1 day
可以修改参数1为任何想需要的数  day也可以改成year(年),month(月),hour(小时),minute(分),second(秒)

date('Y-m-d H:i:s',strtotime("+1 day +1 hour +1 minute");
可以随便自由组合,以达到任意输出时间的目的
注:该方法之针对1970年以后试用,也就是时间戳的适用范围。

php 常用日期相函数[日期加减,两日期之差,日期转换时间截]

下面这些代码是一些常用的日期处理函数了,可以两个时间的日期加减,两日期之差,日期转换时间截等。

echo date('Y-m-d',strtotime('+1 d',strtotime('2009-07-08')));//日期天数相加函数

echo date("Y-m-d",'1246982400');
echo '<br>';
echo date("Y-m-d",'1279123200');
die();

$d   =   "2009-07-08 10:19:00";
echo   date("Y-m-d",strtotime("$d   +1   day"));   //日期天数相加函数

function dateToTime($d)//把日期转换成时间堆截
{
$year=((int)substr("$d",0,4));//取得年份

$month=((int)substr("$d",5,2));//取得月份

$day=((int)substr("$d",8,2));//取得几号

return mktime(0,0,0,$month,$day,$year);
}

/*

下面函数计算两日期之差

*/

$Date_1="2009-07-08";

echo $Date_1+1;

$Date_2="2009-06-08";
$Date_List_a1=explode("-",$Date_1);

$Date_List_a2=explode("-",$Date_2);

$d1=mktime(0,0,0,$Date_List_a1[1],$Date_List_a1[2],$Date_List_a1[0]);

$d2=mktime(0,0,0,$Date_List_a2[1],$Date_List_a2[2],$Date_List_a2[0]);

$Days=round(($d1-$d2)/3600/24);

echo "两日期之前相差有$Days 天";
 

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,