Как вычесть две даты в php [дубликаты]

0

Я хочу вычесть datenow и registerdate и использовать результат в состоянии.

Ниже приведен код:

    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);
Теги:
yii

3 ответа

1
Лучший ответ

Разность меток времени находится в секундах. Вы можете преобразовать это в минуты (делить на 60), часы (делить на 60 * 60), день (делить на 24 * 60 * 60) и так далее.

В Интернете представлено множество примеров и руководств, пожалуйста, обратитесь:

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

Как рассчитать разницу между двумя датами с помощью PHP?

Дата Разница в php в дни?

  • 0
    вторая ссылка, которую вы дали, хороша ... но она считается только до дней ... как насчет часа ??
  • 0
    я удачи часам ... спасибо, в любом случае ... =)
2

использовать это...

$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
  • 0
    date_diff () ожидает, что параметр 1 будет DateTimeInterface, задана строка
0

Разделить на 60 даст вам Minutes. Разделить на 60*60 даст вам Hours. Разделить на 60*60*24 даст вам Days. и так далее.

<your timestamp> / 60*60 = hours

Ещё вопросы

Сообщество Overcoder
Наверх
Меню