Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的最近日期_Php_Date - Fatal编程技术网

PHP中的最近日期

PHP中的最近日期,php,date,Php,Date,我们的计费周期是每个月的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 =

我们的计费周期是每个月的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日

如果您想允许相同的日期,可以使用
$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日

Hei您是如何循环付款的?莫斯利? 你可以用

$next30day=date('Y-m-d', strtotime("+30 days"));

$next30天应为当前日期的下一个30天

嘿,您是如何循环付款的?莫斯利? 你可以用

$next30day=date('Y-m-d', strtotime("+30 days"));
$next30天应为当前日期的下一个30天

仅在以下情况下:

$currentDay = date('j');

if ($currentDay >= 1 && $currentDay <= 16) {
    echo '16th';
} else {
    echo '1st';
}
$currentDay=date('j');
如果($currentDay>=1&&$currentDay,仅当:

$currentDay = date('j');

if ($currentDay >= 1 && $currentDay <= 16) {
    echo '16th';
} else {
    echo '1st';
}
$currentDay=date('j');

如果($currentDay>=1&&$currentDay我们需要处理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));

由于我们需要返回1月1日,我们需要处理12月17日之类的情况。以下代码片段计算下一个付款日期:

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));

对于这样一个简单的问题,你的代码有很高的复杂性。是的,你的答案在这种情况下很好,但如果明天我的付款日期是1、3、6、10、15、24呢?是的。你的代码更灵活。但你知道我回答了这个问题。我投票支持你的解决方案。我不想要数字..1或16..我想要带月份和年份的完整日期检查月/年变化的id计算。@如果日期是17号,则代码将中断,即:
$today=time();$TwoMonthLater=strtotime(“+10天”,“今天”);$modified=date('d',$TwoMonthLater);$payout\u date=get\u payout\u date(intval($modified),$payout\u dates)对于这样一个简单的问题,你的代码有很高的复杂性。是的,你的答案在这种情况下很好,但如果明天我的付款日期是1、3、6、10、15、24呢?是的。你的代码更灵活。但你知道我回答这个问题。我投票赞成你的解决方案。我不想要数字。1或16。我想要带月份和年份的完整日期…以避免计算以检查月/年的变化。@如果日期是17号,则代码会中断,即:
$today=time();$twoMonthsLater=strottime(“+10天”,“$today”);$modified=date('d',$twoMonthsLater);$payout\u date=get\payout\u date(intval($modified),$payout\u dates);