怎么去时间差

xk_520 2010-04-08 02:24:22
$daytime=12 //相隔的天数
$datetime=2010-03-04 时间
1 怎么取得$datetime前 $daytime 的时间
...全文
83 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南昆虫 2010-04-08
  • 打赏
  • 举报
回复
多看看手册,好好利用系统函数啊...
mu_rain 2010-04-08
  • 打赏
  • 举报
回复

/**
* 返回给指定的日期添加天数后的日期
*
* @param string $date 被添加的日期
* @param int $addDay 添加的天数
* @return string
*/
function dateAdd($date, $addDay){
$parts = explode(' ', $date);
$date = $parts[0];
$time = $parts[1];
$ymd = explode('-', $date);
$hms = explode(':', $time);
$year = $ymd[0];
$month = $ymd[1];
$day = $ymd[2];
$hour = $hms[0];
$minute = $hms[1];
$second = $hms[2];
$day = $day+$addDay;
if($month=='1' || $month=='3' || $month=='5' || $month=='7' || $month=='8' || $month=='10' || $month=='12'){
if($day>31){
$day = $day - 31;
$month++;
}
}
if($month=='4' || $month=='6' || $month=='9' || $month=='11'){
if($day>30){
$day = $day - 30;
$month++;
}
}
if($month=='2'){
if(checkRun($year)){
//Feb has 29 days in leap year
if($day>29){
$day = $day - 29;
$month++;
}
}
else{
if($day>28){
$day = $day - 28;
$month++;
}
}
}
if($month==13){
$month = 1;
$year++;
}
if(strlen($month)==1){$month = "0".$month;}
if(strlen($day)==1){$day = "0".$day;}
return $year . "-" . $month . "-" . $day;
}

/**
* 验证是否是润年
*
* @param int $year 年份
* @return boolean 如果是则返回True,否则返回False
*/
function checkRun($year){
if($year%4==0 && ($year%100!=0 || $year%400==0) )
return true;
else
return false;
}

/**
* 将时间转化成秒
* @param string $time
*/
function time_to_second($time) {
if (is_time($time)) {
$array_time = explode(':', $time);
return $array_time[0]*3600+$array_time[1]*60+$array_time[2];
} else {
return 0;
}
}

/**
* 将时间转化为unix时间戳
*
* @param string $date
* @return int 如果转化成功则返回unix时间戳,否则返回-1
*/
function format_date_to_unix($date){
$date = trim($date);
$regexp = '^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})( ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}))?$';
if(ereg($regexp,$date,$regs)){
return mktime($regs[5],$regs[6],$regs[7],$regs[2],$regs[3],$regs[1]);
}else{
return -1;
}
}

/**
* Calculation of the time the auction closes
* @param int $begin unix timestamp
* @param int $end unix timestamp
* @return string The time the auction closes
*/
function date_between($begin, $end = 0, $between = FALSE)
{
if ($end === 0) $end = time();
if ($between === FALSE) $between = $begin - $end;
if($between < 0) return '';
if ($between < 60)
{
return $between.'秒';
}
else
{
$second = $between % 60;
$between = $between / 60;
if ($between < 60)
{
return (int)$between."分".$second."秒";
}
else if($between === 60)
{
return "1小时";
}
else
{
$minute = $between % 60;
$between = ($between - $minute) / 60;
if ($between < 24)
{
$string = (int)$between."小时";
if ($minute > 0)
{
$string .= $minute."分";
}
return $string;
}
else if($between === 24)
{
return "1天";
}
else
{
$hour = $between % 24;
$between = $between - $hour;
$day = $between / 24;
$string = (int)$day."天";
if ($hour > 0)
{
$string .= $hour."小时";
}
if ($minute > 0)
{
$string .= $minute."分";
}
return $string;
}
}
}
}
kyzy_yy_pm 2010-04-08
  • 打赏
  • 举报
回复
lz结贴率听怪异
程序猿之殇 2010-04-08
  • 打赏
  • 举报
回复
echo date('Y-m-d', strtotime('-12 day 2010-03-04'));
看看手册就知道这个函数的强大了.
程序猿之殇 2010-04-08
  • 打赏
  • 举报
回复
echo date('Y-m-d', strtotime('-12 days 2010-03-04'));
看看手册就知道这个函数的强大了.
xuzuning 2010-04-08
  • 打赏
  • 举报
回复
$daytime = 12; //相隔的天数
$datetime = '2010-03-04';// 时间
echo date('Y-m-d', strtotime("-$daytime day $datetime")); //out 2010-02-20
Abin-2008 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iseagold 的回复:]

PHP code

$daytime=12;
$datetime="2010-03-04";
echo date("Y-m-d", strtotime($datetime) - 86400*12);
[/Quote]
算的真准...
thinkinginAOCP 2010-04-08
  • 打赏
  • 举报
回复
LZ的结贴律,顶呐!
ghostwuboy 2010-04-08
  • 打赏
  • 举报
回复

$daytime=12;
$datetime="2010-03-04";
echo date("Y-m-d", strtotime($datetime) - 86400*$daytime);
ghostwuboy 2010-04-08
  • 打赏
  • 举报
回复

$daytime=12;
$datetime="2010-03-04";
echo date("Y-m-d", strtotime($datetime) - 86400*12);

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧