从PHP字符串中的日期列表中获取紧随其后的日期

从PHP字符串中的日期列表中获取紧随其后的日期,php,Php,我需要查看字符串的内容,并确定今天之后最接近的一天是哪一天 比如说。假设我有一个名为$available\u day\u list的字符串,其值为“周一、周四、周五、周六” 根据上面的列表,如果今天是星期二,我想显示“星期四” 如果今天是星期六,我想显示“星期二” 我通过以下方式获得今天的价值: $current_day = date("l"); $current_day = strtolower($current_day); 有人知道我如何在没有阵列的情况下做到这一点吗?谢谢大家 试试这个:

我需要查看字符串的内容,并确定今天之后最接近的一天是哪一天

比如说。假设我有一个名为
$available\u day\u list
的字符串,其值为“周一、周四、周五、周六”

根据上面的列表,如果今天是星期二,我想显示“星期四” 如果今天是星期六,我想显示“星期二”

我通过以下方式获得今天的价值:

$current_day = date("l");
$current_day = strtolower($current_day);
有人知道我如何在没有阵列的情况下做到这一点吗?谢谢大家

试试这个:

$days = explode(',',$available_day_list);

$closestDay = '';
$minTime = 620000;// more than a week

foreach($days as $day){
    $diff = strtotime('next '.$day) - time();
    if($diff < $minTime){
        $closestDay = $day;
        $minTime = $diff;
    }
}

echo $closestDay;
$days=explode(“,”,$available\u day\u list);
$closestDay='';
$minTime=620000;//一个多星期
foreach($天作为$天){
$diff=strottime('next'.$day)-time();
如果($diff<$minTime){
$closestDay=$day;
$minTime=$diff;
}
}
echo$closestDay;
试试这个:

$days = explode(',',$available_day_list);

$closestDay = '';
$minTime = 620000;// more than a week

foreach($days as $day){
    $diff = strtotime('next '.$day) - time();
    if($diff < $minTime){
        $closestDay = $day;
        $minTime = $diff;
    }
}

echo $closestDay;
$days=explode(“,”,$available\u day\u list);
$closestDay='';
$minTime=620000;//一个多星期
foreach($天作为$天){
$diff=strottime('next'.$day)-time();
如果($diff<$minTime){
$closestDay=$day;
$minTime=$diff;
}
}
echo$closestDay;
(我知道,应该作为注释编写,但还不能)Yotam的代码将字符串转换为数组。它工作得很好,我不知道你为什么不想使用数组

如果你真的不知道,你基本上必须确定当天,然后在字符串中搜索第二天,如果不是第二天,依此类推,直到找到为止。

(我知道,应该写为注释,但还不能)Yotam的代码将字符串转换为数组。它工作得很好,我不知道你为什么不想使用数组


如果你真的不知道,你基本上必须确定当前日期,然后在字符串中搜索第二天,如果不是第二天,依此类推,直到找到为止。

你对数组有什么问题?我对数组没有问题,但输出现在不在数组中,我正在使用这个字符串。类似这样的
echo date(“l”,strotime(+2天))?你对数组有什么问题?我对数组没有问题,但是输出现在不在数组中,我正在处理这个字符串。类似于
echo date(“l”,strotime(+2天))?谢谢。出于某种原因,$closestDay的值为空。知道为什么吗?确保日期拼写正确,并且日期名称和字符串中的逗号之间没有空格。如果存在空格,请使用trim()在循环开始处删除它。我已经在我的机器上测试了代码。你成功了!!非常感谢。谢谢出于某种原因,$closestDay的值为空。知道为什么吗?确保日期拼写正确,并且日期名称和字符串中的逗号之间没有空格。如果存在空格,请使用trim()在循环开始处删除它。我已经在我的机器上测试了代码。你成功了!!非常感谢。