首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用php显示两个日期之间的总天数

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

Stack Overflow用户
提问于 2018-06-10 02:11:05
回答 6查看 6.6K关注 0票数 2

我想计算两个日期之间的总天数。

注:我不是在谈论两个日期之间的区别

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

代码语言:javascript
复制
$now = time(); // or your date as well
$your_date = strtotime("2018-06-01");
$datediff = $now - $your_date;
echo round($datediff / (60 * 60 * 24));

输出为9

代码语言:javascript
复制
$now = strtotime("2018-06-09");
$your_date = strtotime("2018-06-01"); 
$datediff = $now - $your_date;
echo $numberDays= round($datediff / (60 * 60 * 24));

输出为8

代码语言:javascript
复制
$dStart = new DateTime('2018-06-01');
$dEnd  = new DateTime('2018-06-09');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;

输出为8

代码语言:javascript
复制
$date1=date_create("2018-06-01");
$date2=date_create("2018-06-09");
$diff=date_diff($date1,$date2);
echo $diff->format("%a");

输出为8

代码语言:javascript
复制
$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

对我来说,正确的答案是第一个9,因为它显示了从1到9的总天数,而不是差异。

我只想知道如何获取计数,因为我不想使用time(),因为它接受当前日期。

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

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

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

EN

回答 6

Stack Overflow用户

发布于 2018-06-10 02:18:45

你可以试试这个-

代码语言:javascript
复制
$dateOne = new DateTime("01-01-2018");
$dateTwo = new DateTime("09-06-2018");

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

输出- 159

票数 3
EN

Stack Overflow用户

发布于 2018-06-10 02:18:14

使用DateTime类并通过diff()方法对它们进行比较。$date1->diff($date2)。输出将为您提供准确的天数结果:

代码语言:javascript
复制
$date1 = new DateTime('2018-01-01');
$date2 = new DateTime('2018-02-15');

print_r($date1->diff($date2));

输出:

代码语言:javascript
复制
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 
)
票数 1
EN

Stack Overflow用户

发布于 2018-06-10 02:28:55

代码语言:javascript
复制
<?php
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
?>

输出: 272天。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档