Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: График оплаты

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pantela
Отправлено: 16 Декабря, 2016 - 18:58:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Хочу вывести график оплаты для кредитной линий.
т.е. Текущей дате + количество дней для интервала * на количество платежей, напр. пробую так.

Пробую так
CODE (html):
скопировать код в буфер обмена
  1.  
  2.                   <table class="table table-bordered table-hover table-striped table-condensed">
  3.                     <thead>
  4.                       <tr>
  5.                         <td style="width: 1px;" class="text-left">#</td>
  6.                         <td class="text-left">Дата платежа</td>
  7.                       </tr>
  8.                     </thead>
  9.                     <tbody>
  10.                       <?php
  11.                          for ($i=1; $i <= $_POST['regular_payment']; $i++) {
  12.                            $regular_payment = $_POST['regular_payment'];
  13.  
  14.                            $date = date('d/m/Y');
  15.                            $date = strtotime($date);
  16.  
  17.                            $date = strtotime("+".$regular_payment." day", $date);
  18.                            $payment_date = date('d/m/Y', $date);
  19.                      ?>
  20.                       <tr>
  21.                         <td class="bolder"><?=$i;?></td>
  22.                         <td><?=$payment_date;?></td>
  23.                       </tr>
  24.                     <?php } ?>
  25.                     </tbody>
  26.                   </table>


Результат http://prntscr[dot]com/dk8mxg

Понимаю что ошибка у меня где-то в strtotime()... Растерялся

спс.Ув.
 
 Top
andrewkard
Отправлено: 16 Декабря, 2016 - 23:15:44
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Я так понимаю, нужно какое то смещение? Или преобразование из то, что есть? Если да, то покажите, как выглядит исходник. Смещение вот так:
PHP:
скопировать код в буфер обмена
  1. $date = new DateTime('2006-12-12');
  2. $date->modify('+1 day');
  3. echo $date->format('Y-m-d');

http://php.net/manual/ru/datetime.modify.php
 
 Top
pantela
Отправлено: 16 Декабря, 2016 - 23:43:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




За это спасибо, вроде мой код тоже прибовляет значение, проблемма у меня втом что перезапись переменой просходит, наверное даты надо виде массива собрать... пробовал через $date = array(); потом в for $date[], но что-то не получилось...

Как... спс.Ув.
 
 Top
pantela
Отправлено: 20 Декабря, 2016 - 10:38:52
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Растерялся
 
 Top
pantela
Отправлено: 22 Декабря, 2016 - 13:57:48
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Огорчение Не дотянулись руки исправить... подскажите...
 
 Top
pantela
Отправлено: 27 Декабря, 2016 - 00:39:20
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Дата 20 раз, каждый раз должны прибовлять +15 дней. Пробую так, но как понимаю переменая $payment_date перезаписываеться в цикле for
PHP:
скопировать код в буфер обмена
  1.                   <table>
  2.                     <thead>
  3.                       <tr>
  4.                         <td>Дата платежа</td>
  5.                         </tr>
  6.                     </thead>
  7.                     <tbody>
  8.                         <?PHP
  9.                           $_p_player = 20;
  10.                           $_p_regular_payment = 15;
  11.  
  12.                           for ($i=1; $i <= $_p_regular_payment; $i++) {
  13.  
  14.                             if ($i > 1) {
  15.                                 $payment_date = date($payment_date, strtotime("+".$_p_regular_payment." day"));
  16.                             }else{
  17.                                 $payment_date = date("d/m/Y", strtotime("+0 day"));
  18.                             }
  19.                           ?>
  20.                       <tr>
  21.                         <td><?=$payment_date;?></td>
  22.                       </tr>
  23.                     <?PHP } ?>
  24.                     </tbody>
  25.                   </table>


CODE (htmlphp):
скопировать код в буфер обмена
  1. 27/12/2016
  2. 27/12/2016
  3. 27/12/2016
  4. 27/12/2016
  5. 27/12/2016
  6. 27/12/2016
  7. 27/12/2016
  8. 27/12/2016
  9. 27/12/2016
  10. 27/12/2016
  11. 27/12/2016
  12. 27/12/2016
  13. 27/12/2016
  14. 27/12/2016
  15. 27/12/2016
  16. 27/12/2016
  17. 27/12/2016
  18. 27/12/2016
  19. 27/12/2016
  20. 27/12/2016



а должно быть так.
CODE (htmlphp):
скопировать код в буфер обмена
  1. 27/12/2016
  2. 11/01/2017
  3. 26/01/2017
  4. ...
 
 Top
Sail
Отправлено: 27 Декабря, 2016 - 17:09:08
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




pantela, есть такое замечание(там, ниже, за примерами):
Цитата:
Даты в формате m/d/y или d-m-y разрешают неоднозначность с помощью анализа разделителей их элементов: если разделителем является слэш (/), то дата интерпретируется в американском формате m/d/y, если же разделителем является дефис (-) или точка (.), то подразумевается использование европейского форматаd-m-y.
Чтобы избежать потенциальной неоднозначности, рекомендуется использовать даты в формате стандарта ISO 8601 (YYYY-MM-DD) либо пользоваться функцией DateTime::createFromFormat() там, где это возможно.

Так что, либо "d.m.Y", либо DateTime
Применительно к приведённому выше коду (исправив попутно строку-аргумент):
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $_p_player = 20;
  3. $_p_regular_payment = 15;
  4. for ($i=1; $i <= $_p_player; $i++):
  5.     if ($i > 1) {
  6.         $payment_date = date("d.m.Y", strtotime($payment_date."+".$_p_regular_payment." day"));
  7.     }else{
  8.         $payment_date = date("d.m.Y", strtotime("+0 day"));
  9.     }
  10. ?>
  11. <tr><td><?=$payment_date;?></td>
  12. <?PHP
  13. endfor;
  14. ?>
  15.  
либо, например, так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $_p_player = 20;
  3. $_p_regular_payment = 15;
  4. $date = new DateTime();
  5. do {
  6.     ?>
  7.     <tr><td><?=$date->format('d/m/Y');?></td>
  8.     <?PHP
  9.     $date->modify("+{$_p_regular_payment} day");
  10. } while(--$_p_player);
  11.  

(Отредактировано автором: 27 Декабря, 2016 - 17:10:21)

 
 Top
pantela
Отправлено: 27 Декабря, 2016 - 23:18:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




отл. спс. Sail сделал как прим. №1.

Ну и последнее что надо... напр. имею этот график http://prntscr[dot]com/dom77n
это у меня наверное будет массив $regular_payment_list

Далее имею записи транзакции напр. http://prntscr[dot]com/dom9dq
это у меня наверное будет массив $transaction_list
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [id] => 1077642
  5.             [base_id] => 36448
  6.             [status] => 1
  7.             [payment_date] => 2016-12-02 18:19:28
  8.             [amount] => 20
  9.             [amount_fee] =>
  10.         )
  11.  
  12.     [1] => Array
  13.         (
  14.             [id] => 1077647
  15.             [base_id] => 36448
  16.             [status] => 3
  17.             [payment_date] => 2016-12-02 18:19:29
  18.             [amount] => 20
  19.             [amount_fee] =>
  20.         )
  21.  
  22.     [2] => Array
  23.         (
  24.             [id] => 1077649
  25.             [base_id] => 36448
  26.             [status] => 1
  27.             [payment_date] => 2016-12-02 18:19:29
  28.             [amount] => 20
  29.             [amount_fee] =>
  30.         )
  31.  
  32.     [3] => Array
  33.         (
  34.             [id] => 1077652
  35.             [base_id] => 36448
  36.             [status] => 3
  37.             [payment_date] => 2016-12-02 18:19:29
  38.             [amount] => 20
  39.             [amount_fee] =>
  40.         )
  41.  
  42.     [4] => Array
  43.         (
  44.             [id] => 1077657
  45.             [base_id] => 36448
  46.             [status] => 2
  47.             [payment_date] => 2016-12-02 18:19:31
  48.             [amount] => 20
  49.             [amount_fee] =>
  50.         )
  51.  
  52.     [5] => Array
  53.         (
  54.             [id] => 1077658
  55.             [base_id] => 36448
  56.             [status] => 1
  57.             [payment_date] => 2016-12-02 18:19:32
  58.             [amount] => 12
  59.             [amount_fee] =>
  60.         )
  61.  
  62. )


Далее мне надо на каждую дату в графике подставить соответствующую транзакцию.

Сразу возник вопрос, как я могу определить, какая транзакция для какой даты, если только по дате не сравнивать (т.е. Дата платежа == Дата транзакции), но тут дата может быть одна, а транзакция через 2 дня...

1. Как решение мне надо подставлять транзакции по нумерации, т.е. если у меня 15 даты, и 5 транзакции, я буду первые 5 дат подставлять.

2. А так же в цикле мне надо условие прописывать, напр. если по графику даты надо было оплатить клиенту 20$, но транзакция была 15$, тогда эту даты надо как-то выделать...

Что-то такое: http://prntscr[dot]com/domjld если надо могу для примера ручками транзакции прописать, хотя думаю ясно...


Думаю макс. хорошо описал что надо... Если есть более универсальное или лучше решение дайте наводку, самому не получилось сделать, поэтому написал в этот раздел тему...

спс.Ув.

P.S. пробовал array_merge()...

(Отредактировано автором: 27 Декабря, 2016 - 23:31:25)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB