【发布时间】:2011-11-20 10:41:34
【问题描述】:
我有一个 created_at 保存日期喜欢这个“2011-09-23 19:10:18”我想得到剩下的日子和小时 直到日期到达。我怎么做?和数据库中的列名剩余天数每天自动更新剩余天数,请解决这个问题
【问题讨论】:
标签: php date laravel-5.7
我有一个 created_at 保存日期喜欢这个“2011-09-23 19:10:18”我想得到剩下的日子和小时 直到日期到达。我怎么做?和数据库中的列名剩余天数每天自动更新剩余天数,请解决这个问题
【问题讨论】:
标签: php date laravel-5.7
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 />";
?>
注意小时制和不考虑分钟/秒意味着它可能会稍微不准确。
【讨论】:
$hours 切换为使用floor 而不是round,从$diff 中减去$hours(如使用$days 以找到$hours),将结果除以60 并四舍五入(得到分钟) /*...*/$secondsPerHour=60*60; $secondsPerDay=60*60*24; $days=floor($diff/$secondsPerDay); $diff-=$days*$secondsPerDay; $hours=floor($diff/$secondsPerHour); $diff-=$hours*$secondsPerHour; $minutes=round($diff/60);
这应该是你努力的种子。
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";
【讨论】:
从 PHP 5.3.0 开始,您可以使用内置的 Date 对象:
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
【讨论】:
应该是这样的
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";
【讨论】:
最简单的方法是从 CountZero 改进答案。我使用这个解决方案来计算报价到期前的剩余时间。除了前三行 CountZero 代码:
$days = $interval->d;
$hours = $interval->h;
$minutes = $interval->i;
$seconds = $interval->s;
现在,您可以使用字符串函数来调节返回值、合并所有值或在值前添加“0”或“00”。
【讨论】:
您可以使用 date() 函数找到当前日期和时间,然后减去
$x = 2011-09-23 - 当前日期
这不会给你。剩余天数。
对时间也一样..
希望对你有帮助
【讨论】: