php日期加减(php日期差数)
php编写datadd($n,$date)函数,计算一个日期之后或之前N天的日期.用表单输入日期和天
function?datadd($n,?$date){
return?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?day"));
}
上面是单独加减"天"的,下面是可以加减年月周日时分秒的...
function?datadd($part,?$n,?$date){
switch($part){
case?"y"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?year"));?break;
case?"m"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?month"));?break;
case?"w"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?week"));?break;
case?"d"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?day"));?break;
case?"h"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?hour"));?break;
case?"n"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?minute"));?break;
case?"s"?:?$val?=?date("Y-m-d?H:i:s",?strtotime($date?."?+$n?second"));?break;
}
return?$val;
}
至于表单比较比较简单就自己写吧...
php中两个时间如何相减
PHP 中的 strtotime() 函数可以实现
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
strtotime(time,now)
参数说明
time 规定要解析的时间字符串。
now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
详细说明
成功则返回时间戳,否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。
例如:
?php
$start_time = '2015-05-01 10:10:10';
$end_time = '2015-06-01 10:10:10';
//下面计算出的是秒,可以转化为天、时、分等
echo strtotime($end_time )-strtotime($start_time);
?
php时间计算问题???
利用strtotime函数!!!
1. 计算日期30天后可以用strtotime PHP提供了一个超级简单的方式来完成本来要几十行代码的工作
先把某日期转换成UNIX时间戳
$t = time(); // 当前时间戳
$t = strtotime("+30 days", $t); // 30天后的时间戳
echo date("Y-m-d", $t); // 格式化日期
2. 转换2日期的时间戳...然后相减
$t1 = strtotime("2009-08-19");
$t2 = strtotime("2009-08-20");
$t = $t2 - $t1; // 相差天数的秒
echo (int)($t / 86400)
php代码,时间只差(精确到秒,并扣除周末的时间)
//可以先将时间转化为时间戳进行加减,然后在转化为时间$a = date(尝发佰菏脂孤拌酞饱喀9;H:i:s');$b = date('H:i:s',strtotime('+50 second'));$aa = strtotime($b)-strtotime($a);echo date('H:i:s', $aa);
php 时间加减问题,比如我的时间:$date_t=$_post[date_t] 我需要输出这个时间的二天,或者加一天,怎么写
这个,你要知道,时间戳的概念不??
php读取的时候就是用时间戳的。
$time = time();
这个代码实现的就是 获取当前的时间戳,如果你要根据本地的时间再加上2天或1天的话,
可以用js的函数解读时间戳。
//功能:检查日期格式是否是有效格式
function checkIsValidDate(str)
{
if(str == "") //如果参数为空,则返回false
return false;
var arrDate = str.split("-"); //把参数用split函数分割成数组,它等同与PHP中的explode函数
if(parseInt(arrDate[0],10) 100) //如果年份小于100,则表示是21世纪
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]); //格式化为日期格式
if(date.getYear() == arrDate[0] //判断格式化后日期的年,月,日是否和参数的相等,相等则是有效格式
date.getMonth() == (parseInt(arrDate[1],10) -1)+""
date.getDate() == arrDate[2])
return true;
else
return false;
}
//功能:检查开始时间是否小于结束日期
//参数:strStart 开始日期,strEnd 结束日期
function checkDateEarlier(strStart,strEnd)
{
if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
return false; //检查日期格式是否有效
if (( strStart == "" ) || ( strEnd == "" )) //检查日期是否为空
return false;
var arr1 = strStart.split("-");
var arr2 = strEnd.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
if(arr1[1].length == 1) //将月份格式化为08这种形式
arr1[1] = "0" + arr1[1];
if(arr1[2].length == 1) //将日格式化为08这种形式
arr1[2] = "0" + arr1[2];
if(arr2[1].length == 1) //将月份格式化为08这种形式
arr2[1] = "0" + arr2[1];
if(arr2[2].length == 1) //将日格式化为08这种形式
arr2[2]="0" + arr2[2];
var d1 = arr1[0] + arr1[1] + arr1[2]; //将开始日期组合成一个字符串
var d2 = arr2[0] + arr2[1] + arr2[2]; //将结束日期组合成一个字符串
if(parseInt(d1,10) parseInt(d2,10)) //将两个字符串转化成整数,如果d1d2则开始日期大于结束日期
return false;
else
return true;
}
php smarty 日期加减正常输出2012-03-06,
你可以在模版里赋值
!--{assign var="var_num" value="`$now-1*24*3600`"}--
然后用赋值出来的变量调用Num2Date方法
!--{'Qimfun'|Num2Date:$var_num}--
可以看看我那个参考资料的的连接