<?php
function getIntervalEnd($pointer, $interval){
$to = clone $pointer;
// For minute interval, return end of the pointers minute
if($interval == 'PT1M')
$to->setTime($to->format('H'), $to->format('i'), 59);
// For hour interval, return end of the pointers hour
elseif($interval == 'PT1H')
$to->setTime($to->format('H'), 59, 59);
// For day interval, return end of the pointers day
elseif($interval == 'P1D')
$to->setTime(23, 59, 59);
// For week interval, return end of the pointers week
elseif($interval == 'P7D'){
if($to->format('N') != 7)
$to->setTimestamp(strtotime('next sunday', $to->getTimestamp()));
$to->setTime(23, 59, 59);
}
// For month interval, return end of the pointers month
elseif($interval == 'P1M')
$to->setDate($to->format('Y'), $to->format('m'),$to->format('t'))->setTime(23, 59, 59);
// For year interval, return end of the pointers year
elseif($interval == 'P1Y')
$to->setDate($to->format('Y'), 12, 31)->setTime(23, 59, 59);
return $to;
}
echo getIntervalEnd(new \DateTime(), 'P1D')->format('c');
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/PLnhj on line 39
2015-06-05T23:59:59+02:00
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/PLnhj on line 39
Fatal error: Class 'DateTime' not found in /in/PLnhj on line 39
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_VARIABLE in /in/PLnhj on line 6
Process exited with code 255.