计算剩余天数[重复]

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。 当你删除你的负面反馈?

以上是关于计算剩余天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

计算生日的剩余天数?

如何计算给定日期的剩余天数、小时数、分钟数和秒数?

计算剩余天数的批处理脚本

sql 如何计算财务季度结束前的剩余天数

sql 如何使用SQL计算日历季度的剩余天数

用excel函数计算本月剩余天数