-2
這是一個很簡單的問題,但我無法找到解決方案。我已經在互聯網上搜索了幾天,找到了一個合適的解決方案。我知道解決方案必須簡單,但它只是我無法想象的。根據天數計算月數
$datetimeToday = new DateTime(date('d M Y'));
$datetimeAccountExpirationDate= new DateTime($account->expiration_date);
$interval = $datetimeToday->diff($datetimeAccountExpirationDate);
$days = $interval->format('%R%a');
$days = intval($days);
if($days <= 0):
// calculate the number of months, a month is of 30 days (for this app)
endif;
我正在計算從今天開始的日期差異以及帳戶過期的那一天。如果賬戶尚未到期,我會得到一個+
值,如果賬戶已過期,我會得到一個-
值。然後我將它轉換爲integet
,然後如果小於0
,我需要計算月數,以便我可以相應地計算我的客戶的成本。在我正在開發的應用程序中,一個月的確切數字爲30 days
。
如下
if $days = 20 then $months = 1 // from 1 - 30, it should give 1
if $days = 35 then $months = 2 // from 31 - 60, it should give 2
等它應該給的值。
編輯:
var_dump($datetimeToday->diff($datetimeAccountExpirationDate)->d); // this would give me days
var_dump($datetimeToday->diff($datetimeAccountExpirationDate)->m); // this would return 0 for days > 0 but < 30
我建議用'的strtotime()熟悉自己;'和'日期()' – Derek
您只需要使用如果你不關心月份是30天還是31天,而2月份是特別的,那麼簡單模數... – AntoineB