PHP strtotime为最接近的一天,直到当月28日

时间:2014-07-28 13:03:48

标签: php strtotime

有没有办法确定本月28日是否过去了?

例如,如果当天是第29个月,那我怎么能抓住第28个月,或者如果这一天是第一个月,我怎么能抓住12月28日?有没有办法在php strtotime()中使用一行?

3 个答案:

答案 0 :(得分:0)

是否 是一个单行?是否 使用strtotime()

$date = new DateTime('2014-01-01');
if ($date->format('j') < 28) {
    $date->modify('previous month');
}
$date->setDate($date->format('Y'), $date->format('n'), 28);
echo $date->format('Y-m-d');

答案 1 :(得分:0)

这个怎么样:

$curDay = date('d');
$curMonth = date('m');
$curYear = date('Y');

$thisMonth = $curYear.'-'.$curMonth.'-28';

if ($curDay > 28) {
    echo 'Last 28th was: '.$thisMonth;
}else{
    echo 'Last 28th was: '.date('Y-m-d',strtotime('-1 month',strtotime($thisMonth)));
}

对不起,这远远不是一条线 - 如果你使用的是当前的日期,那么可以这样做,但是寻找当月的第28天意味着还有更多工作要做。

答案 2 :(得分:0)

$d = '2014-07-29';
if (date('d', strtotime($d)) > 28) {
  $diff = date('d', strtotime($d)) - 28;
  echo date('Y-m-d', strtotime($d.'-'.$diff.' day')); //2014-07-28 getting 1 day back date
}