time()函数数学

时间:2011-10-21 07:38:08

标签: php math

我正在使用time()在数据库中存储日期。 我有一些广告网站。 用户提交广告以及他们希望展示广告的天数,例如:

  

标题:广告标题....

     

持续时间:20天

     

创建日期:time()(当我出现时,我按时间()得到创建日期   在数据库上提交此广告。 )

我需要在纪元格式上计算每个广告的到期日期。

exp_date = creation date + 20 days ; /// this line is hypothetical , i need correct way to calculate exp_Date
sql->set(experation date = exp_date);

此外,我需要知道在几天,几小时和几分钟内将多长时间留在exp日期并在页面上显示。

    $current time = time();
    $remaining_time = $current time - $exp date ; //this line is hypothetical , i need correct way to calculate remaining_time
    echo 'remaining time : '.$remaining_time ;

最后我不想显示已过期的广告(我不确定这样做的最佳方式是计算我展示广告的时间,也许我可以在20天后以某种方式自动停用广告状态?)

    current date = time();
    if (ads experation date > current date ) // this line is hypothetical , i need to calculate this 
    sql->update ('set ads status= 0');
    echo 'this ad has been expires ';
    exit;

3 个答案:

答案 0 :(得分:1)

计算到期日期:

$expiration = time() + 1728000; // 1728000 = 20 * 24 * 60 * 60 (20 days)

要计算剩余时间,您应该执行类似

的操作
$currentTime = time();
$seconds = $expiration - $currentTime;

$daysLeft = (int)($seconds / 86400); // 86400 = 24*60*60 (seconds in one day)
$seconds -= $daysLeft * 86400;
$hoursLeft = (int)($seconds / 3600); // 3600 = 60*60 (seconds in one hour)
$seconds -= $hoursLeft * 3600;
$minutesLeft = (int)($seconds / 60); // seconds in one minute
$seconds -= $minutesLeft * 60;

$daysLeft$hoursLeft$minutesLeft$seconds是您想要的值

答案 1 :(得分:0)

  

我需要在纪元格式上计算每个广告的到期日期。

你碰巧知道一分钟内的秒数吗?小时分钟怎么样?一天中的小时数?
是什么让你无法乘以这些数字?

  

我不想展示已过期的广告

不要显示它们。这就是SQL for。 WHERE exp_date > unix_timestamp()只会选择实际广告。

答案 2 :(得分:-1)

为什么不通过每天运行一次脚本(cron会这样做)来简化生活,并通过这些广告删除(或移动)它们?