$d1= date("Y-m-d H:i:s"); //当时时间
  $d2= $_POST['mydate'];//时间格式为2010-06-13 08:11:49要求结果是:
$d2减去$d1 得到相差几小时,不足一小时的向上取值。 比如如果得出的值是6.1小时。 取结果为7小时。 得出结果为负数时。向下取值。 如得出结果是 -3.3小时。取结果为-4小时。

解决方案 »

  1.   

    $_POST['mydate'] = '2010-06-13 08:11:49';
    $d2 = strtotime($_POST['mydate']);//时间格式为2010-06-13 08:11:49
    $t = ($d2 - time())/3600;
    echo $t>0 ? ceil($t) : floor($t);
      

  2.   

    $d1= time(); //当时时间
    $d2= strtotime("2010-06-13 08:11:49");//时间格式为2010-06-13 08:11:49$h=($d2-$d1)/3600;
    if($h<0){
    $h=(int)("-".ceil(abs($h)));
    }else{
    $h=(int)ceil($h);
    }
    echo $h;
      

  3.   

    $d2= strtotime("2010-06-13 08:11:49");//时间格式为2010-06-13 08:11:49
    当日期时间为  strtotime("2050-06-13 08:11:49");得出的结果是负数了。应该是正数的才对吧。
    有办法解决吗。
      

  4.   

    int strtotime ( string time [, int now] )
    //它返回的是int类型,即最大值为:2147483647  /即strtotime("2038-1-19 03:14:07");
    超过了也就超过int的范围了。是这个函数的问题。这个你就只有根据这个最大值以及0(1970-1-1)来自己写方法计算了。