PHP 中 知道开始时间和相隔天数如何计算出结束时间?
PHP中知道开始时间和相隔天数如何计算出结束时间?如:开始时间是:2008-12-1010:0:0相隔30天,如何算出另一个结束的时间呢?用哪个函数?给个例子?高手谢谢了...
PHP 中 知道开始时间和相隔天数如何计算出结束时间?如:开始时间是:2008-12-10 10:0:0 相隔30天,如何算出另一个结束的时间呢?用哪个函数?给个例子?高手谢谢了。
感谢回答的朋友,但小弟是初学,能不能把具体的日期改为一个变量呢?如:$starttime这又如何做呢?谢谢了。
可是还有一个问题啊,这些变量:$y,$m,$d,还得在一个日期中取出来啊?如何取呢?能不能把这个函数做成这个样子呢?function end_date($starttime,$add) 展开
感谢回答的朋友,但小弟是初学,能不能把具体的日期改为一个变量呢?如:$starttime这又如何做呢?谢谢了。
可是还有一个问题啊,这些变量:$y,$m,$d,还得在一个日期中取出来啊?如何取呢?能不能把这个函数做成这个样子呢?function end_date($starttime,$add) 展开
2个回答
展开全部
楼上的 太麻烦了,不如这样:
用 date 和 mktime 组合
例如 $a=date('Y-m-d h:i:s',mktime(0,0,0,12,10,2008));
$a 是开始时间,相隔30天 就吧mktime里的日期 +30
$b=date('Y-m-d h:i:s',mktime(0,0,0,12,40 /* 10+30 */,2008));
$b 就是结束时间;
具体流程 写个函数吧,方便调用;
<?php
function end_date($y,$m,$d,$add){
//$y 开始日期的年份;
//$m 开始日期的月份
//$d 开始日期的日
//$add 相隔的天数;
$temp=$d+$add;
$end_date=date('Y-m-d H:i:s',mktime(0,0,0,$m,$temp,$y));
return $end_date;
}
?>
这个函数没有错,肯定是在你的程序中已经定义过 end_date这个函数名,或者是你把它放到循环语句中了;
假设提交的日期是“yyyymmdd”格式:
<?php
function end_date($end_time,$add){
$y=substr($end_time,0,4);
$m=substr($end_time,4,2);
$d=substr($end_time,6,2);
$temp=$d+$add;
$end_date=date('Y-m-d H:i:s',mktime(10,0,0,$m,$temp,$y));
return $end_date;
}
?>
用 date 和 mktime 组合
例如 $a=date('Y-m-d h:i:s',mktime(0,0,0,12,10,2008));
$a 是开始时间,相隔30天 就吧mktime里的日期 +30
$b=date('Y-m-d h:i:s',mktime(0,0,0,12,40 /* 10+30 */,2008));
$b 就是结束时间;
具体流程 写个函数吧,方便调用;
<?php
function end_date($y,$m,$d,$add){
//$y 开始日期的年份;
//$m 开始日期的月份
//$d 开始日期的日
//$add 相隔的天数;
$temp=$d+$add;
$end_date=date('Y-m-d H:i:s',mktime(0,0,0,$m,$temp,$y));
return $end_date;
}
?>
这个函数没有错,肯定是在你的程序中已经定义过 end_date这个函数名,或者是你把它放到循环语句中了;
假设提交的日期是“yyyymmdd”格式:
<?php
function end_date($end_time,$add){
$y=substr($end_time,0,4);
$m=substr($end_time,4,2);
$d=substr($end_time,6,2);
$temp=$d+$add;
$end_date=date('Y-m-d H:i:s',mktime(10,0,0,$m,$temp,$y));
return $end_date;
}
?>
展开全部
确实麻烦,就用楼下的方法吧
思路是将开始时间转化为时间戳,再+30天的秒数,最后用date函数格式化输出
<?php
//echo strtotime( '2008-12-10 ' );
//int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
//string date ( string $format [, int $timestamp ] )
$day = 30;
$time = mktime( '10', '00', '00', '12', '24','1986' );
$time += $day*24*3600;
echo date( 'Y-m-d H:i:s', $time );
思路是将开始时间转化为时间戳,再+30天的秒数,最后用date函数格式化输出
<?php
//echo strtotime( '2008-12-10 ' );
//int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
//string date ( string $format [, int $timestamp ] )
$day = 30;
$time = mktime( '10', '00', '00', '12', '24','1986' );
$time += $day*24*3600;
echo date( 'Y-m-d H:i:s', $time );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询