从“星期五”开始的一周,php

从“星期五”开始的一周,php,php,weekday,Php,Weekday,我需要一个php数组day、day of week和month,它本身包含从星期五到下一周星期三的当前星期 非常感谢你的帮助 有了这个脚本,我只得到了从星期天或星期一开始的当前一周的数组-从新潮到西班牙语 不要在两周内用两个不同的部件来完成这项工作 请帮忙 // Name day week in Spanish function diaespanol($valor){ $valor = strtotime($valor); switch (date('w', $valor)){ case 0:

我需要一个php数组day、day of week和month,它本身包含从星期五到下一周星期三的当前星期

非常感谢你的帮助

有了这个脚本,我只得到了从星期天或星期一开始的当前一周的数组-从新潮到西班牙语

不要在两周内用两个不同的部件来完成这项工作

请帮忙

// Name day week in Spanish
function diaespanol($valor){
$valor = strtotime($valor);
switch (date('w', $valor)){
case 0: $titleday ="Domingo"; break;
case 1: $titleday ="Lunes"; break;
case 2: $titleday ="Martes"; break;
case 3: $titleday ="Miercoles"; break;
case 4: $titleday ="Jueves"; break;
case 5: $titleday ="Viernes"; break;
case 6: $titleday ="Sabado"; break;
}

return $titleday ;

}

//name in Spanish of the month
function mesydia($valor){
$mes = substr($valor,5,+2);
$dia = substr($valor,8,+2);
switch ($mes){
case '01': $titulomes ="ene"; break;
case '02': $titulomes ="feb"; break;
case '03': $titulomes ="mar"; break;
case '04': $titulomes ="abr"; break;
case '05': $titulomes ="may"; break;
case '06': $titulomes ="jun"; break;
case '07': $titulomes ="jul"; break;
case '08': $titulomes ="ago"; break;
case '09': $titulomes ="sep"; break;
case '10': $titulomes ="oct"; break;
case '11': $titulomes ="nov"; break;
case '12': $titulomes ="dic"; break;
}   
return $dia.'/'.$titulomes; 
}

// current day
$dia = date('Y-m-d');

$diarecibido = $dia;

//Date of initial calendar day 7 days a week from Monday to Sunday
switch (date('w', $diasemana)){
case 0: $titleday ="Domingo"; 
$menos=6;
$iniciosemana = date("Y-m-d", strtotime("$diarecibido -$menos day"));
break;
case 1: $titleday ="Lunes"; 
$menos=1;
$iniciosemana = $diarecibido;
break;
case 2: $titleday ="Martes"; 
$menos=1;
$iniciosemana = date("Y-m-d", strtotime("$diarecibido -$menos day"));
break;
case 3: $titleday ="Miercoles"; 
$menos=2;
$iniciosemana = date("Y-m-d", strtotime("$diarecibido -$menos day"));
break;
case 4: $titleday ="Jueves"; 
$menos=3;
$iniciosemana = date("Y-m-d", strtotime("$diarecibido -$menos day"));
break;
case 5: $titleday ="Viernes"; 
$menos=4;
$iniciosemana = date("Y-m-d", strtotime("$diarecibido -$menos day"));
break;
case 6: $titleday ="Sabado"; 
$menos=5;
$iniciosemana = date("Y-m-d", strtotime("$diarecibido -$menos day"));
break;
}

//day of the week
$dia_semana = (date('w'));


//if today is not Sunday
if ($dia_semana != 0 ){
//muestra semana actual
for($i=0; $i<7; $i++){      
$mostrable = date("Y-m-d", strtotime("$iniciosemana +$i day"));
$titleday=diaespanol($mostrable);

$array_nombres_dias[] = diaespanol($mostrable);  
$array_fechas_dias[] = mesydia($mostrable);

}   
}
//if today is Sunday
else{   
//muestra semana siguiente
for ($i = 7; $i < 14; $i++) {

$mostrable =date("Y-m-d", strtotime("$iniciosemana +$i day"));
$titleday = diaespanol($mostrable);

if($titleday =='Sabado' || $titleday=='Domingo'){
$findesemana='style="background:#FF0033?';

}
else{
$findesemana= '';

}

$array_nombres_dias[] = $titleday;  
$array_fechas_dias[] = mesydia($mostrable); 

}

}

//I walk two arrays
$longitud = count($array_fechas_dias);
echo $longitud;

for($i=0; $i<$longitud; $i++)
{
//sack the value of each element
echo $array_fechas_dias[$i] . " - ";
echo $array_nombres_dias[$i];     
echo "<br>";
}
我为你设计了一个解决方案。请不要要求其他人将来为你工作

该功能将为您提供一个月内从周五到周三的所有工作日。我希望你能从现在开始找到解决办法


另外,作为提示,最好将语言翻译应用为php数组替换,这样您就可以包含要用于从英语基础语言替换为

Do it for me的语言文件。这里不欢迎这样的问题。而且,它是这个概念的一种复制,就是首先找到第一个星期五。然后找到下周三。然后将这个循环存储在一个数组中,然后将整个过程循环到所需的日期。
<?php
// today
$startDate = date('Y-m-d');
$endDate = '2015-01-31';
// check the day today and find the next day you are interested in first
function nextDayByName($dayName="Sunday", $day='')
{
    if(true===empty($day))
    {
        $day = date('Y-m-d');
    }
    if(date("l") !== $dayName)
    {
        $dayTimestamp = strtotime("next $dayName", strtotime($day));
    } else {
        $dayTimestamp = strtotime($day);
    }
    return date('Y-m-d',$dayTimestamp);
}

function addDaysUntilNextCalendarDay($day, $dateTo)
{
    return nextDayByName($day, $dateTo);
}

$allInterestedDays = array();

do
{
    $startDate = nextDayByName("Friday", $startDate);
    $interateDays = $startDate;
    // echo $interateDays;
    // exit;
    $nextWednesday = addDaysUntilNextCalendarDay("Wednesday", $startDate);
    do 
    {
        $allInterestedDays[] = $interateDays;
        $interateDays = date('Y-m-d', strtotime($interateDays) + 86400);
    } while(strtotime($interateDays) <= strtotime($nextWednesday));

    //var_dump(array( "Friday" => $startDate, "nextWednesday" => $nextWednesday ));
} while($startDate <= $endDate && nextDayByName("Friday", $startDate) <= $endDate);

var_dump($allInterestedDays);

?>