3v4l.org

run code in 300+ PHP versions simultaneously
<?php $emember_flag = 0; date_default_timezone_set('Asia/Singapore'); define('LF', "\n"); define('DATE_FORMAT', 'Y-m-d H:i:s'); # The format 'today' works the same as 'now' except the time is set to 00:00:00 # More info at http://sg3.php.net/manual/en/datetime.formats.relative.php $end_date = new DateTime('today'); # Effective end date is the end of the last day of current month. # But we are using 'first day of next month' because our comparison uses < not <= $end_date->modify('first day of next month'); $sumend_timestamp = $end_date->getTimestamp(); if ($emember_flag) : $intervalSpec = 'P3M'; else : $intervalSpec = 'P1Y'; endif; $upgrade_interval = new DateInterval($intervalSpec); $start_date = clone $end_date; $start_date->sub($upgrade_interval); $sumstart_timestamp = $start_date->getTimestamp(); echo date(DATE_FORMAT, $sumend_timestamp) . LF; echo date(DATE_FORMAT, $sumstart_timestamp) . LF;

preferences:
44.44 ms | 402 KiB | 5 Q