为了账号安全,请及时绑定邮箱和手机立即绑定

比较 2 个日期并获取以天为单位的实时值 PHP 数据表

比较 2 个日期并获取以天为单位的实时值 PHP 数据表

PHP
达令说 2023-04-02 10:38:17
我正在尝试区分在 PHP 中输入的两个日期。一个是备案日期,一个是交货日期。记录条目日期保存如下。    $insertDate=curdate();    function curdate() {    // gets current timestamp    date_default_timezone_set('Asia/Dubai');       return date('Y-m-d');    }交货日期将保存为 HTML 输入。<div class="form-group">  <label for="deliveryDate">Delivery Date</label>     <input type="date" class="form-control" name="deliveryDate" required>                    </div>两者都完美地保存在数据库中,以便我访问 jquery 数据表中的那些。现在在 D/Left 列中,我希望看到交付特定产品的剩余天数。为了实现这一目标,我所做的是交货日期 - 记录输入日期 = 剩余天数。$deliveryDateToSec = strtotime($deliveryDate);$insertDateToSec = strtotime($insertDate);$timeDiff = abs($deliveryDateToSec - $insertDateToSec);$daysLeft = $timeDiff/86400;  // 86400 seconds in one day//convert to integer$daysLeft = intval($daysLeft);虽然我可以通过这种方式完成任务,但我的要求是剩余的天数应该是实时的。就像我今天添加一条记录 - 18-05-2020,交货日期是 - 20-05-2020,那么剩下的天数就是 2。当我明天看到记录时,它应该是 1。同样减法必须像每天减少 1 天一样发生。我试图以多种方式做到这一点,但我无法完成。如果无论如何都可以使用 JQuery Datatable 方法来完成,非常感谢您的建议。
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

我认为您每次显示表格时都应该从交货日期中减去当前日期。


<?php


$deliveryDateToSec = strtotime($deliveryDate);

$currentDateToSec = strtotime(Date('Y-m-d'));

$timeDiff = $deliveryDateToSec - $currentDateToSec;

$daysLeft = $timeDiff/86400;  // 86400 seconds in one day

//convert to integer

$daysLeft = intval($daysLeft);


if ($daysLeft < 0) {

    $daysLeft = 0;

}


echo $daysLeft;


查看完整回答
反对 回复 2023-04-02
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信