Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php显示两个日期之间的总天数_Php_Html_Date - Fatal编程技术网

如何使用php显示两个日期之间的总天数

如何使用php显示两个日期之间的总天数,php,html,date,Php,Html,Date,我想计算两次约会之间的总天数 注:我不是说两次约会的区别 我在google和Stack Overflow上找到了很多答案。我在这里分享 $now = time(); // or your date as well $your_date = strtotime("2018-06-01"); $datediff = $now - $your_date; echo round($datediff / (60 * 60 * 24)); 产量为9 $now = strtotime("2018-06-09

我想计算两次约会之间的总天数

注:我不是说两次约会的区别

我在google和Stack Overflow上找到了很多答案。我在这里分享

$now = time(); // or your date as well
$your_date = strtotime("2018-06-01");
$datediff = $now - $your_date;
echo round($datediff / (60 * 60 * 24));
产量为9

$now = strtotime("2018-06-09");
$your_date = strtotime("2018-06-01"); 
$datediff = $now - $your_date;
echo $numberDays= round($datediff / (60 * 60 * 24));
输出为8

$dStart = new DateTime('2018-06-01');
$dEnd  = new DateTime('2018-06-09');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;
$date1=date_create("2018-06-01");
$date2=date_create("2018-06-09");
$diff=date_diff($date1,$date2);
echo $diff->format("%a");
$startTimeStamp = strtotime("2018-06-01");
$endTimeStamp = strtotime("2018-06-09");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;  // 86400 seconds in one day
// and you might want to convert to integer
echo $numberDays = intval($numberDays); 
输出为8

$dStart = new DateTime('2018-06-01');
$dEnd  = new DateTime('2018-06-09');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;
$date1=date_create("2018-06-01");
$date2=date_create("2018-06-09");
$diff=date_diff($date1,$date2);
echo $diff->format("%a");
$startTimeStamp = strtotime("2018-06-01");
$endTimeStamp = strtotime("2018-06-09");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;  // 86400 seconds in one day
// and you might want to convert to integer
echo $numberDays = intval($numberDays); 
输出为8

$dStart = new DateTime('2018-06-01');
$dEnd  = new DateTime('2018-06-09');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;
$date1=date_create("2018-06-01");
$date2=date_create("2018-06-09");
$diff=date_diff($date1,$date2);
echo $diff->format("%a");
$startTimeStamp = strtotime("2018-06-01");
$endTimeStamp = strtotime("2018-06-09");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;  // 86400 seconds in one day
// and you might want to convert to integer
echo $numberDays = intval($numberDays); 
输出为8

$dStart = new DateTime('2018-06-01');
$dEnd  = new DateTime('2018-06-09');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;
$date1=date_create("2018-06-01");
$date2=date_create("2018-06-09");
$diff=date_diff($date1,$date2);
echo $diff->format("%a");
$startTimeStamp = strtotime("2018-06-01");
$endTimeStamp = strtotime("2018-06-09");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;  // 86400 seconds in one day
// and you might want to convert to integer
echo $numberDays = intval($numberDays); 
对我来说,正确的答案是第一个9,因为它显示了从1到9的总天数,没有差别

我只是想知道如何获得计数,因为我不想使用时间,因为它取的是当前日期

例如:如果我选择2018-05-01的第一个日期和2018-05-31的第二个日期。所以总天数是31天,而不是30天

例如:
我正在从事一个与工作日和工资有关的项目。因此,员工将选择日期。例如我是员工,在上个月的5月份,我选择了日期2018-05-01和2018-05-31,因此我必须显示总工作日。因此,根据我工作31天的日期,并在问题中使用上述代码,我得到30天

希望你能理解我的问题。您能帮我解决这个问题吗?

使用DateTime类并通过diff方法比较它们$日期1->diff$date2。输出将为您提供精确的天数结果:

$date1 = new DateTime('2018-01-01');
$date2 = new DateTime('2018-02-15');

print_r($date1->diff($date2));
输出:

DateInterval Object 
( 
[y] => 0 
[m] => 1 
[d] => 14 
[h] => 0 
[i] => 0 
[s] => 0 
[f] => 0 
[weekday] => 0 
[weekday_behavior] => 0 
[first_last_day_of] => 0 
[invert] => 0 
[days] => 45 
[special_type] => 0 
[special_amount] => 0 
[have_weekday_relative] => 0 
[have_special_relative] => 0 
)
你可以试试这个-

$dateOne = new DateTime("01-01-2018");
$dateTwo = new DateTime("09-06-2018");

echo $diff = $dateTwo->diff($dateOne)->format("%a");
产出-159


输出:272天。

在这里,我在第一次编程php时得到了您的解决方案;在PHP中,函数会根据当前时间以毫秒为单位进行动态更改。您只需调用time即可获得1970年1月1日00:00:00 GMT以来经过的时间(以秒为单位)。在这里,您使用round函数在12pm之后获得舍入值。您的计算将增加8.5以上,得到一个舍入值,即9

这里简单解释一下

在程序的其余部分,您使用的是不受系统时间影响的静态时间或自定义时间

    $now = time(); // or your date as well
    $your_date = strtotime("2018-06-01");
    $datediff = $now - $your_date;
    echo round($datediff / (60 * 60 * 24));
在中午12点之前尝试上述程序,也许你已经得到了答案,第一次编译并立即打印$now,几分钟后写下put,第二次编译并立即打印$now,你会有所不同,你可以尝试以下方法:

  <?php
    $start_date = "2020-12-24";
    $end_date   = "2020-12-31";
    $dateDiff   = strtotime($end_date) - strtotime($start_date);
    $numOfDays  = $dateDiff / 86400;
    echo $numOfDays;
  ?>

输出:7

只需在您的calculations@Andreas,在1月份,总天数为31天。所以你从2018-01-01开始工作到2018-01-31,如果我检查不同的,它将显示30,但我在公司工作了31天。所以我需要输出31。希望你能理解。是的,如果你从计算中得到30,你只要加上1,你就得到31。“为什么要让它变得比需要的更难呢?”安德烈亚斯,我正在做一个与工作日和工资有关的项目。因此,员工将选择日期。例如我是员工,在上个月的5月份,我选择了日期2018-05-01和2018-05-31,因此我必须显示总工作日。因此,根据我工作31天的日期,并在问题中使用上述代码,我得到30天。这方面还有什么想法吗?你能给我解释一下吗?DateTime::diff-DateTimeImmutable::diff-DateTimeInterface::diff-date\u diff-返回两个DateTime对象之间的差。如果为符号添加%r,这将从技术上输出负天数。如果这是一个开始和结束的情况,您可能希望将其转换为:$dateOne->diff$dateTwo->format%a;我需要的答案是46,而不是45,因为在一月份,总天数是31天,在fab 15中,因此31+15=46可以修改第一个日期,如果需要将开始日期作为计数:$date1->modify'-1 day';在1月份,总天数为31天。所以你从2018-01-01开始工作到2018-01-31,如果我检查不同的,它将显示30,但我在公司工作了31天。所以我需要输出31。我必须从用户那里得到值,而不是从时间函数。时间将显示当前日期。不仅是日期,它是日期和时间的整数形式。如果您使用我添加到问题中的日期和时间,以便轻松、快速地理解函数date_diffdatetime1,datetime2,absolute;成功时返回DateInterval对象,该对象表示两个日期之间的差异。失败时出错