2017-02-22 20 views
0

У меня есть вопрос, который занят системой счетов и имеет следующую проблему: Мы хотим отправлять счета каждый день и каждую неделю.PHP Счета-фактуры меняют начало дня недели -2 дня

Таким образом, наша неделя от субботы до пятницы.

Теперь наш выход так:

Order:3869 
Weeknr:2017-07 
Weektime:2017-02-17 16:11:54 
EndDate:2017-02-18 

Weektime String:1487347914 
EndDate String:1487376000 

Order:3874 
Weeknr:2017-07 
Weektime:2017-02-19 14:52:57 
EndDate:2017-02-18 

Weektime String:1487515977 
EndDate String:1487376000 

Здесь вы видите заказ: 3874, это должно быть Weeknr: 2017-08

Это мой цикл:

foreach($orders as $order){ 
    if($order->post->post_parent != 0){ 
     $endDate = strtotime(date('Y-m-d',strtotime('last saturday'))); 
     $week = date('Y-W', strtotime($order->post->post_date)); 
     $weektime = strtotime($order->post->post_date); 

if($weektime > $eindDatum){ 
       continue; 
      } 
    } 

Теперь я не могу найти, как я могу видеть, начнется ли наша неделя в понедельник в PHP, если это правда, как я могу изменить неделю -2 дня.

Извините за мое плохое объяснение в плохом английском, но я надеюсь, что кто-то может мне помочь

O это мой перед заказами, как например:

echo '<pre>'; 
     echo 'Order:'.print_r($order->post->ID,true).'<br>'; 
     echo 'Weeknr:'.print_r($week,true).'<br>'; 
     echo 'Weektime:'.print_r($order->post->post_date,true).'<br>'; 
     echo 'EindDatum:'.print_r(date('Y-m-d',strtotime('last saturday')),true).'<br><br>'; 
     echo 'Weektime String:'.print_r($weektime,true).'<br>'; 
     echo 'EindDatum String:'.print_r($eindDatum,true).'<br>'; 
    echo '</pre>'; 

ответ

0

Вы можете использовать объект PHP DateTime в ассоциации с методом модификации для перемещения части времени на дату.

Пример

$date = new DateTime('2006-12-12'); $date->modify('-2 day');

+0

чем я получаю выход, как: "Weeknr: 1970-01" – Gurdt

+0

Вероятно потому, что вы не превратили его в объект DateTime правильно – gmourier

Смежные вопросы