php编程的日期和天数

时间:2016-05-18 18:50:21

标签: php

我在代码日期需要帮助。

我有一个有特定日子的市政当局:

$Dispatch = array ( "Monday" , "Friday" , "Saturday" ) ;
如果我在星期一询问,那么在订单后2个工作日办公室

应该在周三与我联系,但周三不在日期数组

货物应该在星期五到达我那个最接近日期的地方,

另一个例子,如果我要求周六的一天,应该在周一联系我,并列为可交付成果。

$dias = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
        $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

$despacho = array("Lunes","Viernes","Sabado");
$dia_actual = $dias[date('w')];
$dia_actual_normal = $dias[date('w')+2];
if(in_array($dia_actual_normal,$despacho))
    {
        $actual = $dia_actual_normal;
    }

我有这个,但我不知道更多。

3 个答案:

答案 0 :(得分:0)

只需为您的业务添加天数,直到达到您想要的日期:

$desired_day = Datetime::createFromFormat('Y-m-d', '2016-05-18');
$Dispatch = array ( "Monday" , "Friday" , "Saturday" );

$interval = DateInterval::createfromdatestring('+1 day');
while(!in_array($desired_day->format('l'), $Dispatch)) {
    $desired_day->add($interval);
}

return $desired_day->format('l');

答案 1 :(得分:0)

我稍微改变了你的代码

// index of normal actual day
$i = (date('w')+2) % 6;
// find 1st ocurrence in despacho array
while ( ! in_array($dias[$i], $despacho))  $i =  ($i+1) % 6;
$actual = $dias[$i];

答案 2 :(得分:0)

$dias = array("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo");
        $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

        $despacho = array("Martes","Viernes","Sabado");
        $dia_actual = $dias[date('w')];
        $dia_actual_normal = $dias[date('w')+2];

        $i = (date('w')+2) % 6;
        // find 1st ocurrence in despacho array
        while ( ! in_array($dias[$i], $despacho))  $i =  ($i+1) % 6;
        $actual1 = $dias[$i];

print_r($actual1);
        exit();

但不行,因为今天是星期三所以应该是星期五:S

帮帮我