使用implode和stropos进入数组的日期

时间:2015-02-20 16:24:58

标签: php date

我有一个日期输入javascript,允许用户一次向数据库添加任意数量的日期,这是使用implode并存储为一个大字符串,如2015-01-01 2015-01-02等......

我也希望这可以找出其中一天是否包含周末。我不知道字符串和日期参数如何与此相符。

$week_end_check = array();    

$week_end_check = implode(' ',date('D'), strtotime($_POST['dates']));

    if ((strpos($week_end_check,'Sun')) || (strpos($week_end_check,'Sat' ))) {
        $weekend = '1';
    }

上面的内容不会像我所知的那样起作用,但有人可以帮助我......你可以通过以上方式了解我的意思。

2 个答案:

答案 0 :(得分:2)

这是一种不太习惯的方法:

$weekend = false;
foreach($_POST['dates'] as $date) {
    $day = (new DateTime($date))->format('D');
    if (in_array($day, array('Sun', 'Sat'))) {
         $weekend = true;
         break;
    }
}
  1. 默认情况下将$weekend设为false
  2. 遍历每个日期
  3. 获取星期几
  4. 检查“Sun”或“Sat”
  5. $weekend设为true
  6. 一旦我们知道已经找到周末,就结束循环

答案 1 :(得分:1)

请使用此示例。 。

$string = "2015-01-01 2015-01-02 2015-01-04 2015-01-06";

$array = explode(" ",$string);

$weekend_array = array();

$total = count($array);

for($i=0;$i<$count;$i++)
{
       $my_day = date("D", strtotime($array[$i]));

       if($my_day=="Sun" || $my_day=="Sat")
       {
               $weekend_array[] = $array[$i];
       }

}

echo "<pre>";
    print_r($weekend_array);
echo "<pre>";