【问题标题】:how to disable button when date(d-m-Y) value is less than date(30-m-Y) using if condition PHP当日期(d-m-Y)值小于日期(30-m-Y)时如何使用if条件PHP禁用按钮
【发布时间】:2021-03-17 03:03:47
【问题描述】:

我有工人或雇员表 .. 我在表内有 Resign Date ..

表格中的每一个数据都有编辑按钮、替换按钮和删除按钮..

Replace BUTTON 用于替换辞职工人的新工人.. 我已经让按钮在辞职日期为空时禁用,并在它不为空时启用。

现在我不知道如何让按钮在辞职日期的下个月启用。

例如: 如果有人在 2021 年 3 月 17 日辞职,该按钮应禁用至 2021 年 1 月 4 日(下个月的第一天).. 希望有人能帮助我

这是我的桌子:

   $data = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC);
        $kode=trim($data ['id_mcm']);
        $kode_mcm=trim($data ['kode_mcm']);
        $nama_mcm=trim($data ['nama_mcm']);
        $kode_ctr=trim($data ['kode_ctr']);
        $nama_ctr=trim($data ['nama_ctr']);
        $no_ktp=trim($data ['no_ktp']);
        $no_hp=trim($data['no_hp']);
        $domisili=trim($data['domisili']);
        $tgl_join=date_format($data ['tgl_join'],'d-m-Y');
        
if ($data ['tgl_resign']!=''){$tgl_resign=date_format($data ['tgl_resign'],'d-m-Y'); 

<!--i tried to added this code below so i can use if inside Replace button tag with less operation-->
$tgl_resign_baru=date_format($data ['tgl_resign'],'30-m-Y');
    
 }else{$tgl_resign='';}
        
        $alamat=trim($data['alamat']);
         ?>
        <tr <?php if($tgl_resign!=''){echo 'style="background-color:#f2c4cd"';} else {echo'';}?>>
        <td><?php echo ++$no_urut;?></td>
        <td><?php echo $kode_mcm;?></td>
        <td><?php echo $nama_mcm;?></td>
        <td><?php echo $kode_ctr;?></td>
        <td><?php echo $nama_ctr;;?></td>
        <td><?php echo $no_ktp;?></td>
        <td><?php echo $no_hp;?></td>
        <td><?php echo $domisili;?></td>
        <td><?php echo $tgl_join;?></td>
        <td><?php echo $tgl_resign;?></td>
        <td><?php echo $alamat;?></td>
      <td>

这里是按钮标签:

<!-- button Modal  replace-->       
<button type="button"  class="btn btn-success btn-xs" data-toggle="modal" data-target="#myy<?php echo $kode; ?>" 
<?php if (($akses=="Leader" || $akses=="IT") && $tgl_resign!="" && $kode_mcm!="" 
 && $tgl_resign>$tgl_resign_baru) <-- and i add this too . but it doesn't work 
{ 
 echo '';
}else{
    echo 'disabled';}?>>
    Baru
</button>

【问题讨论】:

  • 澄清一下,如果有人在 17/3/2021 辞职,该按钮应该在 1/4/2021 之前禁用(第一天下个月)?您在问题中列出了 1/3/2021,这似乎没有意义。您应该使用t 来确定该月的最后一天,而不是假设为 30 (php.net/manual/en/datetime.format.php)。你的日期格式应该是YYYY-MM-DD。然后您可以使用date_diff 来确定辞职日期(格式为Y-m-t = 2021-03-31 与您给定的示例)是否小于您的比较月份。
  • 哦,对不起,我已经编辑了问题..感谢您的回复,我现在就试试看会发生什么..再次感谢您的回复@WOUNDEDStevenJones

标签: php date if-statement button html-table


【解决方案1】:

您可以通过将辞职日期设置为月底,然后将其与当前日期进行比较来简化此逻辑。如果它大于或等于当前日期,您可以禁用该按钮。

<?php

$resignDate = '2021-03-17';
$resignDateEOM = date('Y-m-t', strtotime($resignDate)); //2021-03-31

$currentDate = date('Y-m-d');

if ($resignDateEOM >= $currentDate) {
    echo 'resign date end-of-month is still in the future';
}
<?php
    $disabled = '';
    if (
        ($akses=="Leader" || $akses=="IT")
        && $tgl_resign!=""
        && $kode_mcm!="" 
        && $resignDateEOM >= $currentDate
    ) {
        $disabled = 'disabled';
    }
?>
<button
    type="button"
    class="btn btn-success btn-xs"
    data-toggle="modal"
    data-target="#myy<?= $kode; ?>"
    <?= $disabled; ?>
></button>

【讨论】:

  • 这是工作兄弟.. 非常感谢你的帮助兄弟.. :) ,, 我投票支持你的答案,但我的声誉仍然低于 15 .. 再次感谢你兄弟。 :)
猜你喜欢
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 2021-11-26
  • 2013-05-12
  • 1970-01-01
相关资源
最近更新 更多