首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结束日期验证

结束日期验证
EN

Stack Overflow用户
提问于 2011-07-22 16:15:37
回答 2查看 162关注 0票数 0

我想验证当前日期与问题张贴日期,如果日期差异大于1天,那么它需要显示在过期的问题,这将不会考虑我的数组中已经有的日期数组。

比如一个问题发布在7月20日-11日。

豁免日期数组{‘21-7-11’,...etc}当前日期为22-7-11

然后,输出需要显示为问题等待1天而不是2天。

有谁能帮上忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-22 16:28:29

这是我为计算到期日而创建的一些示例代码。提交问题时,以这种方式计算到期日,并将其与该问题的条目一起存储在数据库中...

代码语言:javascript
复制
<?php

$daysDue = 2;
$exDatesArray = array("2011-07-21", "2011-07-23"); //array with all your holiday dates.
$question_1_Date = "2011-07-21";
$question_2_Date = "2011-07-18";
$question_3_Date = "2011-07-20";

echo "Holidays on: ";
foreach( $exDatesArray AS $exdate )
{
    echo $exdate . ", ";
}
echo "<br/><br/>";
echo "submit date -> due date<br/>";
echo $question_1_Date . " -> " . calculateDueDate( $question_1_Date, $exDatesArray, $daysDue ) . "<br/>";
echo $question_2_Date . " -> " . calculateDueDate( $question_2_Date, $exDatesArray, $daysDue ) . "<br/>";
echo $question_3_Date . " -> " . calculateDueDate( $question_3_Date, $exDatesArray, $daysDue );

function calculateDueDate( $date, $exDates, $daysDue )
{
    //start with day 1
    $count = 1;

    //now we loop from day one to due days
    while( $count <= $daysDue )
    {
        //add one day to start date
        $date = add_date( $date, 1 );
        //check if that new date is a holiday
        if( !in_array($date , $exDates) )
        {
            //only if it is not a holiday we increase counter, otherwise we dont count that day towards due period
            $count++;
        }
    }

    //return calculated due date
    return $date;
}

function add_date($date,$days)
{ 
    $cd = strtotime($date); 
    return date('Y-m-d', mktime(0,0,0,date('m',$cd),date('d',$cd) + $days, date('Y',$cd))); 
}
?>

输出:

代码语言:javascript
复制
Holidays on: 2011-07-21, 2011-07-23, 

submit date -> due date
2011-07-21 -> 2011-07-24
2011-07-18 -> 2011-07-20
2011-07-20 -> 2011-07-24
票数 0
EN

Stack Overflow用户

发布于 2011-07-22 16:20:01

代码语言:javascript
复制
//convert date to unixtime (seconds)
$question_sec = strtotime($question);

//subtract
$diff = time() - $question_sec;
$days = $diff / 60*60*24;
echo "$days old";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6787286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档