【问题标题】:How to subtract two dates in php [duplicate]如何在php中减去两个日期[重复]
【发布时间】:2015-01-03 19:37:24
【问题描述】:

我想减去datenowregisterdate 并在条件中使用结果。

以下是代码:

    public function actionCheckDate(){
        date_default_timezone_set('Asia/Kuala_Lumpur'); 
        $datenow = date('Y-m-d');   

        $id = Yii::app()->user->getState('id');
        $models = GamesDevelopers::model()->find('id='.$id); 
        $registerdate = CHtml::encode($models->registerdate);           
        $active = strtotime($datenow)-strtotime($registerdate);

        print_r($active);
        die();
}

结果是:627173,我怎么知道627173是多少时间或日期?

更新

    public function actionCheckDate(){
        date_default_timezone_set('Asia/Kuala_Lumpur'); 
        $datenow = date('Y-m-d H:i:s'); 

        $id = Yii::app()->user->getState('id');
        $models = GamesDevelopers::model()->find('id='.$id); 
        $registerdate = CHtml::encode($models->registerdate);           

        $diff = abs(strtotime($registerdate) - strtotime($datenow));

        $years = floor($diff / (365*60*60*24));
        $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
        $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

        printf("%d years, %d months, %d days\n", $years, $months, $days);
        die();
}

工作正常,但如何计算小时数?

查找营业时间:

    $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)*24);

    printf("%d hours\n",$hours);

【问题讨论】:

    标签: php yii


    【解决方案1】:

    使用这个...

    $date1=date_create("2013-03-15");
    $date2=date_create("2013-12-12");
    $diff=date_diff($date1,$date2);
    

    【讨论】:

    • date_diff() 期望参数 1 是 DateTimeInterface,给定字符串
    【解决方案2】:

    时间戳差异以秒为单位。您可以将其转换为分钟(除以 60)、小时(除以 60*60)、天(除以 24*60*60)等等。

    网上有很多例子和教程,请参考:

    http://www.w3schools.com/php/func_date_date_diff.asp

    How to calculate the difference between two dates using PHP?

    Date Difference in php on days?

    【讨论】:

    • 你给出的第二个链接很好......但它只计算到几天......小时呢??
    • 我成功了几个小时......无论如何谢谢你...... =)
    【解决方案3】:

    除以60 将得到Minutes。 除以60*60 将得到Hours。 除以60*60*24 将得到Days。 等等。

    <your timestamp> / 60*60 = hours
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 2012-10-13
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多