Я такая ситуация, когда пользователи могут выбрать выставление счета каждый месяц, квартал или полугодие в одну конкретную дату, цикл выставления счетов. Я использую Laravel PHP framework.Php: Как я могу получить ту же дату следующих месяцев, ежеквартально и раз в полгода
Например. Ежемесячно - 5 мая 2016 года, 5 июня 2016 года, 5 июля 2016 года и т. Д. Выставляется по 5 на каждый месяц Например. Ежеквартально - 10 января 2016 года, 10 марта 2016 года, 10 июня 2016 года и т. Д. Выставляется по 10 каждые три месяца Например. Полу-Ежегодно - 13 апреля 2016, 13 сентября 016 Выставляется по 13 после каждых шести месяцев.
Целью является получение той же даты в каждый месяц, когда пользователь выбирает счет, но через месяц, ежеквартально или раз в полгода.
Это мой код после того, как я играю с @Rishi Methode в течение некоторого времени
public function as_you_go($pay_as_you_go,$grand_total,$payment_date,$policy_id)
{
$policy = $this->findorFail($policy_id);
if($pay_as_you_go == 'Semi-Annually'){
$payments_no = 2;
$installment_amount = $grand_total/$payments_no;
$month_gap = 6;
$add_month = '+6 month';
}elseif($pay_as_you_go == 'Quarterly'){
$payments_no = 4;
$installment_amount = $grand_total/$payments_no;
$month_gap = 3;
$add_month = '+3 month';
}elseif($pay_as_you_go == 'Monthly'){
$payments_no = 12;
$installment_amount = $grand_total/$payments_no;
$month_gap = 1;
$add_month = '+1 month';
}
// Pay as you go calculations
for ($x = 0; $x < $payments_no; $x++) {
//$add_month = '+'.$x.' month';
$installment = new \App\Installment;
$installment->amount = $installment_amount;
if(\App\Installment::wherePayableType('App\Policy')->wherePayableId($policy->id)->first()){
$payment = \App\Installment::wherePayableType('App\Policy')->wherePayableId($policy->id)->orderBy('id', 'desc')->first();
$date = $payment->payment_date->format('Y-m-d');
$installment->payment_date = date('Y-m-d',strtotime($date.$add_month));
}else{
$installment->payment_date = $payment_date;
}
$installment->is_payed = 'No';
$policy->installments()->save($installment);
}
}
Это моя функция, которую я хотел генерирует даты по дате пользователя выбора, основанного на полугодовой, квартальной и месячной оплаты разрыв.
Добро пожаловать на SO, пожалуйста, напишите код .. я имею в виду попытаться найти решение и только потом спросить .. это выглядит как «дать мне решение» вид вопроса которого никто здесь не любит :) – nayana
Извините. У меня не было никакой идеи или кода при публикации этого вопроса, у меня была единственная пустая функция, поэтому я думал, что это никому не поможет. @otopolsky –
hm у вас есть множество ответов, так что это может быть хорошим вопросом в конце концов :) Я имел в виду, что когда вы показываете какой-то код .. или, по крайней мере, «псевдокод» того, что вы хотите достичь, это поможет людям понять, что вы хочу достичь .. и в то же время вы можете найти какое-то решение, попробовав что-то .. мне это случалось несколько раз, когда я задавал вопрос .. тогда я, хотя нормально, добавил код ... и я написал немного что-то - И это сработало! есть хороший день .. – nayana