<?php
$startDate = new \DateTime();
$startDate->setDate(2014, 01, 30);
$startDate->setTime(0, 0, 0);
var_dump($startDate);
if ((int) $startDate->format('m') > 28 ) {
$startDate->setDate($startDate->format('Y'), $startDate->format('m'), 28);
}
var_dump($startDate);
/*
$nextMonth = clone $startDate;
$nextMonth->modify('+ 14 days');
$nextMonth->setDate($nextMonth->format('Y'), $nextMonth->format('m'), $nextMonth->format('t'));
// $nextMonth->modify('last day of the month');
var_dump($nextMonth);
$startDate->add(new DateInterval(sprintf('P%dD', $startDate->format('t'))));
$startDate->sub(new DateInterval('P1D'));
$startDate->setTime(23, 59, 59);
while ($startDate >= $nextMonth) {
$startDate->sub(new DateInterval('P1D'));
}
var_dump($startDate);
$newDate = new \DateTime();
$newDate->setDate(2014, 02, 27);
$newDate->setTime(23, 59, 59);
var_dump($newDate->getTimestamp() == $startDate->getTimestamp());
*/
preferences:
49.29 ms | 402 KiB | 5 Q