最近的日期在 PHP
Closest Date in PHP
我们的结算周期是每月的 1 日和 16 日。我们想向我们的用户展示下一个付款日期。何继续 PHP ?
例如:今天是 2 月 7 日...因此应将 2 月 16 日作为输出。
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 日
嘿,您是如何循环付款的?每月?
你可以使用
$next30day=date('Y-m-d', strtotime("+30 days"));
$next 30 day 应该是当前日期的下一个 30 天
如果:
$currentDay = date('j');
if ($currentDay >= 1 && $currentDay <= 16) {
echo '16th';
} else {
echo '1st';
}
我们需要处理像 12 月 17 日这样的情况,因为我们需要 return 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
我们的结算周期是每月的 1 日和 16 日。我们想向我们的用户展示下一个付款日期。何继续 PHP ?
例如:今天是 2 月 7 日...因此应将 2 月 16 日作为输出。
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 日
嘿,您是如何循环付款的?每月? 你可以使用
$next30day=date('Y-m-d', strtotime("+30 days"));
$next 30 day 应该是当前日期的下一个 30 天
如果:
$currentDay = date('j');
if ($currentDay >= 1 && $currentDay <= 16) {
echo '16th';
} else {
echo '1st';
}
我们需要处理像 12 月 17 日这样的情况,因为我们需要 return 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