计算剩余天数[重复]
Posted
技术标签:
【中文标题】计算剩余天数[重复]【英文标题】:Calculate number of days remaining [duplicate] 【发布时间】:2011-11-23 19:20:06 【问题描述】:我想计算某个日期之前的剩余天数。在我的数据库中,我有一个与结束日期相对应的时间戳。例如星期五 30。我想说这样的话:
还剩 7 天...... 6、5、4 等等
你能帮帮我吗?
【问题讨论】:
我忘了说我的结束日期是一个时间戳。 地板出了什么问题(($endTimestamp - time()) / 86400); ? 在数据库中存储时间戳不是好的做法。您的 DBMS 将提供更适合日期的数据类型。 我应该使用什么类型? 【参考方案1】:$future = strtotime('21 July 2012'); //Future date.
$timefromdb = //source time
$timeleft = $future-$timefromdb;
$daysleft = round((($timeleft/24)/60)/60);
echo $daysleft;
【讨论】:
已编辑。未来应该是您倒计时的日期 这不是负面的。【参考方案2】: $date1 = new DateTime("2016-01-01"); //current date or any date
$date2 = new DateTime("2016-12-31"); //Future date
$diff = $date2->diff($date1)->format("%a"); //find difference
$days = intval($diff); //rounding days
echo $days;
//it return 365 days omitting current day
【讨论】:
最佳解决方案,为 Y2K38 选择这个。 只是一个问题,如果已经过去的日期返回值为负数?【参考方案3】:SELECT DATEDIFF(yourtimestamp, CURDATE()) AS days
文档参考:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff
【讨论】:
【参考方案4】:$days = round((timestamp_from_database - time()) / 86400);
【讨论】:
@BobbaFett 什么返回时间戳?$days
应该是天数,我很确定。
这个效果最好,时间戳用strtotime()
【参考方案5】:
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
http://php.net/manual/ro/function.date-diff.php
【讨论】:
w3schools.com/php/showphp.asp?filename=demo_func_date_diff 供参考:***.com/help/how-to-answer 编辑您的答案也更好,因为人们并不总是阅读 cmets。 当你删除你的负面反馈?以上是关于计算剩余天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章