使用 implode 和 stropos 将日期放入数组

Date into array with implode and stropos

我有一个日期输入 javascript 允许用户一次将尽可能多的日期添加到数据库中,这是使用内爆并存储为一个大字符串,如 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';
    }

据我所知,上面的方法行不通,但是有人可以帮助我吗...我希望你可以通过上面的方法理解我所追求的。

这里有一个不那么做作的方法:

$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. 一旦找到周末就结束循环

请使用这个例子。 .

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