使用php获取下一个第15天和/或第30天的日期?

时间:2015-11-04 15:40:27

标签: php date

我要求获取当前日期即将到来的 15th 30ths 的日期。 (如果二月在范围内,当然必须是28/29)。

我可以使用mktime / strtotime或者使用其他方法吗?

我得到了这个但当然这只是为了这个和下个月的最后一天。我需要即将到来的15日和30日。

$cuota1 = date('t-m-Y', strtotime('+15 days'));
    return $cuota1;

$cuota2 = date('t-m-Y', strtotime('+30 days'));
    return $cuota2;

$cuota3 = date('t-m-Y', strtotime('+45 days'));
    return $cuota3;

提前致谢。

3 个答案:

答案 0 :(得分:0)

也许有点粗糙,但你可以尝试这样的东西,虽然当然这根本不验证日期: -

$m=date('m')+1;
$y=date('Y');

$d=15;
echo date( 't-m-Y', strtotime( "{$d}.{$m}.{$y}" ) );
# > outputs: 31-12-2015

$d=30;
echo date( 't-m-Y', strtotime( "{$d}.{$m}.{$y}" ) );
# > outputs: 31-12-2015

答案 1 :(得分:0)

希望我的想法是正确的,可能这个解决方案很长,但看起来像防弹:

$numOfDays = date('t', $todayStamp);
$base = strtotime('+'.$numOfDays.' days', strtotime(date('Y-m-01', $todayStamp)));
$day15 = date('Y-m-15', $base);
$day30 = date('Y-m-'.min(date('t', $base), 30), $base);

其中$todayStamp通常是time()的值,但出于调试目的,它可以是任意日期的strtotime()。例如,让我们采取下一个闰年的“困难”案例:

$today = '2016-01-30';
$todayStamp = strtotime($today);
$numOfDays = date('t', $todayStamp);
$base = strtotime('+'.$numOfDays.' days', strtotime(date('Y-m-01', $todayStamp)));
$day15 = date('Y-m-15', $base);
$day30 = date('Y-m-'.min(date('t', $base), 30), $base);
var_dump($day15);
var_dump($day30);

输出

string(10) "2016-02-15"
string(10) "2016-02-29"

并且对于2016-02-29,输出将是

string(10) "2016-03-15"
string(10) "2016-03-30"

答案 2 :(得分:0)

$tstamp =  strtotime('+1 month');  //add a month
$m=date('m',$tstamp);   //month value
$y=date('Y');  //this year
$date15 = date("Y-m-d", strtotime("$y-$m-"."15"));  //15 th of next month
$date31 = date("Y-m-t", strtotime("$y-$m-"."15")); //last date of next month

这将为您提供下个月的最后日期。