나는 매월 고객에게 요금을 부과해야하는 시스템에서 일하고 있습니다. 날짜는 구독하는 날짜에 따라 달라질 수 있습니다. 매달 1 일 또는 그 달의 마지막 날에있을 수 있습니다.특정 날짜에 고객에게 월 단위로 요금 청구
첫 데이트를 저장하고 있습니다. 예를 들어, 고객이 오늘 구독하는 경우 2016-11-30에 요금이 부과되므로 2016-11-30을 데이터베이스에 저장합니다.
날짜가 고정 값일 때 (1이라고 가정 해 봅시다) 문제가되지 않습니다. 문제는 그 달의 마지막 날이 언제 올 것인가입니다. 위의 예를 고려하면 2016-12-30 대신에 2016-12-31에 청구해야합니다 (31 일이 12 월 마지막 날이기 때문에).
달의 마지막 날에 요금을 청구해야하는 모든 고객을 확보하려면 어떻게해야합니까?
미리 감사드립니다.
편집
예 :
고객 A는 표지판을 오늘. 시스템은이 고객이 매월 마지막 날에 매월 요금을 청구해야한다고 말합니다. 고객 테이블에는 첫 번째 날짜가있는 필드가 있으며이 경우 2016-11-30을 저장합니다. 즉, 30-NOV, 31-DEC, 31-JAN, 28-FEB (또는 29-FEB), 31-MAR, 30-APR에 청구될 것입니다.
내일 고객 B 표지판. 시스템은이 고객이 매월 1 일에 매월 요금을 청구해야한다고 말합니다. 데이터베이스 필드는 2016-12-01을 저장합니다. 이는 그가 1-DEC, 1-JAN, 1-FEB, 1-MAR, 1-APR에 대해 요금이 부과되고 계속 진행됨을 의미합니다.
이제 고객에게 청구 할시기를 결정하는 스크립트를 작성해야합니다. 고객 B는 매월 1 일에 설치되므로 문제가되지 않습니다. 그러나 고객 A는 해당 월의 같은 날에 청구되지 않습니다. 몇 달 동안 그는 30 일에, 31 일에, 2 월 28 일/29 일에 청구될 것입니다.
실제로 2016-11-30은 문자 그대로 2016-11-30이 아니라 "월말"을 의미한다는 것을 스크립트에서 어떻게 알 수 있습니까? 그냥 원하는대로와 형식 매개 변수를 수정
<?php echo date('d-m-Y', strtotime('last day of this month')); ?>
:
당신은'31-DEC'에서 나를 위탁하겠다고 제안 하겠지만,'30-DEC'에 가입하면'30-NOV'가 부과 될 것입니다, 맞습니까? 그렇다면 여기에 비대칭 성이있는 것 같습니다. –
일을 단순하게하기 위해 시스템이 그 달의 마지막 날에만 요금을 부과한다고 가정 해 봅시다. 오늘 가입하는 경우 30-NOV, 31-DEC, 31-JAN, 28-FEB (또는 29-FEB), 31-MAR, 30-APR –