您的位置:

php计算相差天数,php时间差

本文目录一览:

PHP中怎样计算两个日期相差的天数

?php

/**

 * 求两个日期之间相差的天数

 * (针对1970年1月1日之后,求之前可以采用泰勒公式)

 * @param string $day1

 * @param string $day2

 * @return number

 */

function diffBetweenTwoDays ($day1, $day2)

{

  $second1 = strtotime($day1);

  $second2 = strtotime($day2);

   

  if ($second1  $second2) {

    $tmp = $second2;

    $second2 = $second1;

    $second1 = $tmp;

  }

  return ($second1 - $second2) / 86400;

}

$day1 = "2013-07-27";

$day2 = "2013-08-04";

$diff = diffBetweenTwoDays($day1, $day2);

echo $diff."\n";

php里有没有计算两个时间相隔的天数的函数

/**

* function:计算两个日期相隔多少年,多少月,多少天

* param string $date1[格式如:2011-11-5]

* param string $date2[格式如:2012-12-01]

* return array array('年','月','日');

*/

function diffDate($date1,$date2)

{

$datetime1 = new \DateTime($date1);

$datetime2 = new \DateTime($date2);

$interval = $datetime1-diff($datetime2);

$time['y'] = $interval-format('%Y');

$time['m'] = $interval-format('%m');

$time['d'] = $interval-format('%d');

$time['h'] = $interval-format('%H');

$time['i'] = $interval-format('%i');

$time['s'] = $interval-format('%s');

$time['a'] = $interval-format('%a'); // 两个时间相差总天数

return $time;

}

# 使用实例

$sss = diffDate('2015-12-25 12:30:30', '2015-12-26 15:00:00');

print_r($sss);

# 输出

Array

(

[y] = 00

[m] = 0

[d] = 1

[h] = 02

[i] = 29

[s] = 30

[a] = 1

)

用php计算给定两个日期相差多少天

:

计算方法不只下面介绍的这些,只是一些比较常规的方法:

上面的php时间日期函数strtotime已经把字符串日期变成了时间戳,这样只要让两数值相减,然后把秒变成天就可以了,比较的简单,如下:

$days=round(($enddate-$startdate)/3600/24) ;

下面介绍另外一种方法:

上面判断的是两个日期的大小,下面则是判断生日的程序代码,得到的$n就是相距生日的天数。

$birthday=生日;

$birthday = preg_replace(‘/d+/’, Date(‘Y’), $birthday, 1);

$d = 60*60*24;

$n= floor((strtotime($birthday)-time())/$d);$n=$n+1;

还有如果相比的是现在的时间,就可以用time()函数,得到的就是现在的时间戳.

第二种情况呢,就是有数据库,这样就相对比较容易一些了!如果是MSSQL可以使用触发器!用专门计算日期差的函数datediff()计算便可!

如果是MYSQL那就用两个日期字段的时间戳值,进行计算后便可得到相差的天数了。方法和上面的代码很像。