回答
我們需要照顧的情況下比如12月17日,因爲我們需要返回1月1日下面的代碼片段計算下一個付款日期:
date_default_timezone_set('UTC');
list($day, $month, $year) = array_map('intval', explode(',', date('j,m,Y')));
if ($day < 16)
$day = 16;
else {
$day = 1;
$month = $month % 12 + 1;
if ($month == 1) $year += 1;
}
echo date(DATE_RFC2822, mktime(0, 0, 0, $month, $day, $year));
它是當前日期的輸出:
Mon, 16 Feb 2015 00:00:00 +0000
function get_payout_date($today, $payout_dates) {
foreach ($payout_dates as $d) {
if ($d > $today) return $d;
}
return $payout_dates[0];
}
$payout_dates = array(1, 16);
echo get_payout_date(intval(date('d')), $payout_dates);
如果你想允許同一日期,你可以使用$d >= $today
。
你想從付款日期,然後全日:
$payout_date = get_payout_date(intval(date('d')), $payout_dates);
$date = date('jS M, Y', strtotime(date('Y-m-') . $payout_date));
echo $date;
輸出:2015年2月16日
您的代碼對於這樣一個簡單的問題具有非常高的複雜度。 – 2015-02-07 11:17:35
是的,你的回答對這種情況有好處,但如果明天我的付款日期是1,3,6,10,15,24,該怎麼辦? – Ananth 2015-02-07 11:20:09
這是事實。你的代碼更加靈活。但你知道我回答有關問題。我投票了你的解決方案。 – 2015-02-07 11:22:34
喜你是怎麼週期付款? mothly? 可以使用
$next30day=date('Y-m-d', strtotime("+30 days"));
$ next30day旁應有30天當前日期的
只需簡單,如果:
$currentDay = date('j');
if ($currentDay >= 1 && $currentDay <= 16) {
echo '16th';
} else {
echo '1st';
}
- 1. 在php中獲取最近日期
- 2. 獲取最近的日期在PHP
- 3. SQL最近日期
- 4. 選擇最近的日期
- 5. 獲取最近的日期
- 6. 查找最近的日期
- 7. 選擇最近的日期
- 8. SQL最近的日期
- 9. 選擇最近的日期
- 10. 加入最近的日期
- 11. PHP:根據日期數組檢查日期以獲取最近的日期
- 12. SQL中日期的最近時間
- 13. 選擇最近日期
- 14. 查找最近日期
- 15. 最近登入日期mvc
- 16. 如何查找給定日期名稱的最近/最近日期
- 17. 在SQL查詢中選擇最近或最近日期
- 18. 如何使用VBA查找日期列中的最近日期
- 19. 在日期列表中查找最接近的給定日期
- 20. 在JavaScript中將日期舍入到最近的日期。
- 21. 在sql中連續查找特定日期的最近日期
- 22. 在SQL Server中查找最近日期
- 23. 在SQL中選擇最近日期
- 24. 確定日期和日期的最近日期的日期函數
- 25. 最近(最大)日期爲每個ID
- 26. 從PHP當天獲取最近7天的日期時間的日期記錄
- 27. 如何查找最近4個月的開始日期和結束日期,包括php中的當前日期
- 28. 比較日期從PHP和MSSQL檢索從現在最近的日期
- 29. 選擇日期在另一個表中最接近日期
- 30. Excel中 - 最接近計算日期系統日期
..數字化? :P – Kroltan 2015-02-07 11:07:10