php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码

php计算两个时间相差的天数、小时数、分钟数、秒数

PHP中计算两个时间相差的天数、小时数、分钟数、秒数不如其它语言方便,但搞清了PHP中时间的表示方法后也很简单。本文章向大家讲解php如何计算时间相差。需要的码农可以参考一下。

先看下面这个网上给的例子:

//$startdate是开始时间,$enddate是结束时间
<?php
$startdate="2011-3-15 11:50:00";

$enddate="2012-12-12 12:12:12";

$date=floor((strtotime($enddate)-strtotime($startdate))/86400);
echo "相差天数:".$date."天<br/><br/>";

$hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600);
echo "相差小时数:".$hour."小时<br/><br/>";

$minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60);
echo "相差分钟数:".$minute."分钟<br/><br/>";

$second=floor((strtotime($enddate)-strtotime($startdate))%86400%60);
echo "相差秒数:".$second."秒";
?>

不管是自己使用字符串来构造的时间类型(使用strtotime转换而来的)也好,还是直接使用系统的time函数得到的时间类型也好,最终其实都是长整形的一个变量。两个这样的变量,就很明显可以做减法了。

做减法得到值是相差的秒数,这个秒数对86400(一天的秒数)取余,则得到相差数。如果对86400取模,还对3600秒、60秒取余,则得到相关的小时和分钟数。如果对86400取模,再对60取模,则得到相差的秒数。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)

    本文实例讲述了PHP编程计算两个时间段是否有交集的实现方法.分享给大家供大家参考,具体如下: 优化前的版本: /** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 * @return bool */ function is_t

  • php计算函数执行时间的方法

    本文实例讲述了php计算函数执行时间的方法.分享给大家供大家参考.具体如下: 我们可以通过在程序的前后分别记录开始和结束时间,两个时间差就是程序的执行时间. <?php $long_str = "this is a test to see how much time md5 function takes to execute over this string"; // start timing from here $start = microtime(true); // func

  • PHP判断指定时间段的2个方法

    一.包含小时和分钟的判断 date_default_timezone_set("Asia/Shanghai"); $time = intval (date("Hi")); if ($time > "800" && $time < "1130") { // code } 二.只判断小时 date_default_timezone_set("Asia/Shanghai"); if(d

  • PHP获取指定时间段之间的 年,月,天,时,分,秒

    核心代码: Class Utils { /** * format MySQL DateTime (YYYY-MM-DD hh:mm:ss) 把mysql中查找出来的数据格式转换成时间秒数 * @param string $datetime */ public function fmDatetime($datetime) { $year = substr($datetime,0,4); $month = substr($datetime,5,2); $day = substr($datetime,

  • PHP中UNIX时间戳和日期间的转换与计算实例

    UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式.以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时间戳.UNIX时间戳是从1970年1月1日零点(UTC/GMT的午夜)开始起到当前时间所经过的秒数.1970年1月1日零点作为所有日期计算的基础,这个日期通常成为UNIX纪元. 因为UNIX时间戳是一个32位的数字格式,所以特别适用于计算机处理,例如计算两

  • php实现用于计算执行时间的类实例

    本文实例讲述了php实现用于计算执行时间的类.分享给大家供大家参考.具体如下: 有了这个php类,计算函数或者一段代码的执行时间就简单了 <?php class c_Timer { var $t_start = 0; var $t_stop = 0; var $t_elapsed = 0; function start() { $this->t_start = microtime(); } function stop() { $this->t_stop = microtime(); }

  • php计算两个日期时间差(返回年、月、日)

    在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等.在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年.月.日. <?php /** +---------------------------------------------------------- * 功能:计算两个日期相差 年 月 日 +--------------------------------------------------

  • 比较时间段一与时间段二是否有交集的php函数

    复制代码 代码如下: /* *比较时间段一与时间段二是否有交集 */ function isMixTime($begintime1,$endtime1,$begintime2,$endtime2) { $status = $begintime2 - $begintime1; if($status>0){ $status2 = $begintime2 - $endtime1; if($status2>0){ return false; }else{ return true; } }else{ $

  • php中计算时间差的几种方法

    一个简单的例子就是计算借书的天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几种方法: (1) 如果有数据库就很容易了!若是MSSQL可以使用触发器!用专门计算日期差的函数datediff()便可! 若是MYSQL那就用两个日期字段的差值计算的计算结果保存在另一个数值型字段中!用时调用便可! (2)如果没有数据库,那就得完全用php的时间日期函数!下面主要说明之: 例:计算1998年5月3日到1999-6-5的天数: <?php $startdate=mktime("

  • php 计算两个时间戳相隔的时间的函数(小时)

    这个是可以具体到小时的php代码 复制代码 代码如下: /* Author: 杨宇 yangyu@sina.cn */ //输入两个时间戳,计算差值,也就是相差的小时数,如返回2:10,则表示输入的两个时间相差2小时10分钟 function hours_min($start_time,$end_time){ if (strtotime($start_time) > strtotime($end_time)) list($start_time, $end_time) = array($end_t

  • PHP编程获取各个时间段具体时间的方法

    本文实例讲述了PHP编程获取各个时间段具体时间的方法.分享给大家供大家参考,具体如下: <?php echo "今天:".date("Y-m-d")."<br>"; echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>"; echo "明天:".date("Y

随机推荐