示例(今天 13.05.2013 ):
11/05/2013, 2013年5月20日,9/05/2013< - false;
10/03 / 2013,14 / 04/2013, 12/05/2013 < - true;
15/06/2013 ,11/06 / 2013,8 / 06/2013< - false;
13/05/2013 ,10/04 / 2013,02 / 05/2013< - false(今天=假)
PHP:
function outdate($dates) {
$dates = str_replace('/','-',$dates);
$dates = explode(',',$dates);
$today = time();
foreach ($dates as $date) {
if($today > strtotime($date)) {
// ????
}
}
}
我已经完成了一些部分。请帮我做返回 true
或false
我将使用我的功能......
if( outdate('11/05/2013, 12/05/2013, 9/05/2013') ) {
// do something
}
任何人都可以帮助我?
答案 0 :(得分:2)
假设这是您所需要的:
function outdate($dates) {
$res = true;
$dates = str_replace('/','-',$dates);
$dates = explode(',',$dates);
$today = time();
foreach ($dates as $date) {
if($today < strtotime($date)) {
$res = false;
break;
}
}
return $res;
}
如果所有过去的日期都已过去,它将返回true。如果今天或将来至少有一个日期,则为假。
答案 1 :(得分:2)
function outdate($dates) {
$flag = false;
$dates = str_replace('/','-',$dates);
$dates = explode(',',$dates);
$today = time();
foreach ($dates as $date) {
if($today > strtotime($date)) {
$flag = true;
break;
}
}
return $flag;
}
答案 2 :(得分:2)
您可以使用数组,类似这样(未经测试)
$array = array("11/05/2013", "12/05/2013", "9/05/2013");
$result = checkDates($array);
function checkDates($array)
{
foreach($array as $a)
{
$date = strtotime(preg_replace("/^([0-9]{1,2})[\/\. -]+([0-9]{1,2})[\/\. -]+([0-9]{1,4})/", "\\2/\\1/\\3", $a));
if($date>time()) return false;
}
return true;
}
答案 3 :(得分:1)
我找到了另一个要做的事情..先查找最大日期然后再检查一下!
function outdate($dates) {
$dates = str_replace('/','-',$dates);
$dates = explode(',',$dates);
$ts_dates = array();
foreach ($dates as $date) {
$ts_dates[] = strtotime($date);
}
$max_date = max($ts_dates);
$today = strtotime('today');
if($max_date < $today) {
return true;
} else {
return false;
}
}