0
요약 : 지급 기한 날을 알려주는 프로그램을 만들려고합니다. 나는 그것이 어떻게 행해졌는지에 대한 아이디어를 가지고 있지만, 한 가지 문제가 남아있다. 고객이 1/31/17에 계정을 개설했다고 가정 해 보겠습니다. 다음 만기일은 2/28/18 (한 달 후)입니다. 내 코드에 따르면 오늘의 날이 정책이 열린 날보다 짧다면 1 개월이 지나지 않아서 한 달에 계산되지 않으므로 전체 월로 계산하지 않습니다. .다음 지급시기를 계산할 때 2 월을 고려하여
이 코드 나는 2 월 마지막 날을 제외하고는 거의 모든 날짜에 대해 작동하거나 월이 30 일에 끝나고 정책이 31 일에 열렸습니다.
고맙습니다.
$today = time();
$policy_opened = strtotime($policy_opened);
//number of months the policy has been opened
$year_opened = date('Y',$policy_opened);
$year_now = date('Y',$today);
$month_opened = date('m',$policy_opened);
$month_now = date('m',$today);
$day_opened = date('d',$policy_opened);
$day_now = date('d',$today);
$months_since_opened = (($year_now - $year_opened) * 12) + ($month_now - $month_opened);
$months_since_opened = $months_since_opened + 1; //since it can't start with 0 months opened.
if($day_now < $day_opened){
//this is in order to count it as one month only if a 'whole month' has passed by.
$months_since_opened = $months_since_opened - 1;
}
나는 작동하지 않습니다. 예를 들어,이 정책은 1 월 마지막 날 (2017-131)에 개설되었습니다. 오늘이 2017-2-28 (2 월 마지막 날) 인 경우 출력은 1이지만 여전히 0입니다. 내가 2017 년 2 월 31 일로 오늘 $를 움직이면 작동하지만, 우리 모두는 2 월이 28 일까지만 진행된다는 것을 알고 있습니다. –