我想验证当前日期与问题张贴日期,如果日期差异大于1天,那么它需要显示在过期的问题,这将不会考虑我的数组中已经有的日期数组。
比如一个问题发布在7月20日-11日。
豁免日期数组{‘21-7-11’,...etc}当前日期为22-7-11
然后,输出需要显示为问题等待1天而不是2天。
有谁能帮上忙吗?
发布于 2011-07-22 16:28:29
这是我为计算到期日而创建的一些示例代码。提交问题时,以这种方式计算到期日,并将其与该问题的条目一起存储在数据库中...
<?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)));
}
?>输出:
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发布于 2011-07-22 16:20:01
//convert date to unixtime (seconds)
$question_sec = strtotime($question);
//subtract
$diff = time() - $question_sec;
$days = $diff / 60*60*24;
echo "$days old";https://stackoverflow.com/questions/6787286
复制相似问题