yii 如何获取表单域的值并将其传递到另一个表单域

dtcbnfnu  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(152)

我正在开发人力资源系统,我想计算员工可以休息多少天。在人力资源表中我有三个属性。
1-start_date(员工开始在公司工作的时间)。
2-leavestaken(员工之前请了多少天假)。
3-假期(员工可休假的天数),等于=(当前日期和start_date之间的月数)* 2.5(因为每个月给予2.5天的假期)-假期
第三个属性是自动生成的,而不是来自用户,我如何从字段表单中获取第一个和第二个属性值,在计算中使用它们,并将结果保存在leaves属性中?
我使用sql,这只适用于服务器端

w9apscun

w9apscun1#

**服务器端:**如果您的start_date是unix时间戳:

if ($model->load(Yii::$app->request->post())) {

      n_month = (time() -  $model->leaves) / (30 * 24 * 60 * 60);
      $model->leaves = ceil(n_month * 2.5) - $model->leavestaken;
      # code...

      //ceil : Because one day off is not complete, Rounds a number down to the nearest integer

但是如果它不是unix,你可以使用date_diff()方法或者......
您可以在模型文件中的beforeSave或beforeValidate方法中执行此操作。
您可以使用JavaScript来计算客户端。

yjghlzjz

yjghlzjz2#

我的解决方案是

if ($model->load(Yii::$app->request->post())  ) {

       $date = date('m/d/Y');

     $datetime1 = date_create($date); 
     $datetime2 = date_create($model->start_date); 

     // calculates the difference between DateTime objects 
     $interval = $datetime2->diff($datetime1);
     $n_month= $interval->m + 12*$interval->y;
     $model->leaves = ceil($n_month * 2.5) - $model->leavestaken;

        $model->save();

相关问题