deepak deepak -5 years ago 913
PHP Question

Yii2 datetime difference calculation between two dates and inserting the difference in db

enter image description here

There are 3 fields in task table-> expected_start_datetime,expected_end_datetime,time_allocated
While creating a task expected start and end datetime is selected and saved in the records.

What I am trying to do is to find the difference between the two dates in hours and minutes and save the value inside the "time_allocated" while creating the task and later on the update or view page use/display the time allocated value from the records.

Trying something like this in the task controller action create

$diff = ((strtotime($model->expected_start_datetime) - strtotime($model->expected_end_datetime)) / (60 * 60 * 24));

$model->time_allocated = $model->time_allocated + $diff;

enter image description here

Answer Source

in your model you should be override beforeSave function like this:

        public function beforeSave($insert) {

            $time =date('H:i',(strtotime($this->expected_end_datetime)-strtotime($this->expected_start_datetime)));
            $time= explode(":", $time);
            $this->time_allocated=$time[0].'hour and '.$time[1].'minutes';
            return parent::beforeSave($insert);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download