【问题标题】:Get day most closely following today from list of days in PHP string从 PHP 字符串中的天数列表中获取最接近今天的天数
【发布时间】:2013-05-27 23:43:08
【问题描述】:

我需要查看字符串的内容并确定最接近今天的那一天。

例如。假设我有一个名为$available_day_list 的字符串,其值为“星期一、星期四、星期五、星期六”。

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

我得到了今天的价值:

$current_day = date("l");
$current_day = strtolower($current_day);

任何人都知道我如何在没有数组的情况下做到这一点?谢谢大家!!

【问题讨论】:

  • 数组有什么问题?
  • 我对数组没有问题,但输出现在不在数组中,我正在处理这个字符串。
  • 类似echo date("l", strtotime("+ 2 days")); ?

标签: php


【解决方案1】:

试试这个:

$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;

【讨论】:

  • 谢谢。由于某种原因,$closestDay 的值是空白的。任何想法为什么?
  • 确保日期拼写正确,并且字符串中的日期名称和逗号之间没有空格。如果有空格,请在循环开始时使用 trim() 将其删除。我已经在我的机器上测试了代码。
  • 你成功了!!谢谢!
【解决方案2】:

(我知道,应该写成注释,但现在还不能) Yotam 的代码将字符串转换为数组。而且效果很好,我不知道你为什么不想使用数组。

如果你真的不这样做,你基本上必须确定当天,然后在字符串中搜索下一天,如果不是下一天,依此类推,直到找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多