Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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_Date_Laravel 5.7 - Fatal编程技术网

Php获取一个日期还剩多少天和小时

Php获取一个日期还剩多少天和小时,php,date,laravel-5.7,Php,Date,Laravel 5.7,我在保存日期创建了一个_,如“2011-09-23 19:10:18”,我想得到剩下的天数和时间 直到到达日期为止。我该怎么做?数据库中的列名“剩余天数”会随剩余天数自动每日更新,请解决此问题。这应该是您努力的方向 getdate(strtotime("2011-09-23 19:10:18")) 完全转换: $seconds = strtotime("2011-09-23 19:10:18") - time(); $days = floor($seconds / 86400); $seco

我在保存日期创建了一个_,如“2011-09-23 19:10:18”,我想得到剩下的天数和时间
直到到达日期为止。我该怎么做?数据库中的列名“剩余天数”会随剩余天数自动每日更新,请解决此问题。

这应该是您努力的方向

getdate(strtotime("2011-09-23 19:10:18"))
完全转换:

$seconds = strtotime("2011-09-23 19:10:18") - time();

$days = floor($seconds / 86400);
$seconds %= 86400;

$hours = floor($seconds / 3600);
$seconds %= 3600;

$minutes = floor($seconds / 60);
$seconds %= 60;


echo "$days days and $hours hours and $minutes minutes and $seconds seconds";

大概是

echo $date = date("Y-m-d H:i:s");echo "\n";

$original=time($date);


$modified = "2011-09-23 19:10:18";

echo date("Y-m-d H:i:s",$modified);echo "\n";

可以使用date()函数查找当前日期和时间,然后进行减法运算

$x=2011-09-23-当前日期

这将给你剩下的天数

时间也是如此

希望这对PHP片段有所帮助:

<?php

//Convert to date
$datestr="2011-09-23 19:10:18";//Your date
$date=strtotime($datestr);//Converted to a PHP date (a second count)

//Calculate difference
$diff=$date-time();//time returns current time in seconds
$days=floor($diff/(60*60*24));//seconds/minute*minutes/hour*hours/day)
$hours=round(($diff-$days*60*60*24)/(60*60));

//Report
echo "$days days $hours hours remain<br />";
?>

从PHP 5.3.0开始,您可以使用内置日期对象:

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

最简单的方法是从CountZero改进答案。在报价到期前的剩余时间内,我将此解决方案用作计数器。除了CountZero代码的前三行之外:

$days = $interval->d;
$hours = $interval->h;
$minutes = $interval->i;
$seconds = $interval->s;

现在,您可以使用字符串函数调整返回值,合并所有值,或在值前面添加“0”或“00”。

这应该可以回答问题。谢谢,也帮了我。还有没有可能剩下几分钟呢???@SenTisso是的。将
$hours
切换为使用
楼层
而不是
四舍五入
,将
$hours
$diff
中减去
$hours
(与
$days
类似,以查找
$hours
),将所得金额除以60并四舍五入(以获得分钟)/*…*/$secondsPerHour=60*60$第二天=60*60*24$天数=下限($diff/$secondsPerDay)$差异-=$days*$secondsPerDay$小时数=楼层($diff/$secondsPerHour)$差异-=$hours*$secondsPerHour$分钟=一轮($diff/60);我只是想知道我能用什么参数。答案如下: