3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $lastDate = '1452504837'; $interval = 'P0Y0M1D'; $interval = new DateInterval($interval); echo 'Interval: '.$interval->format('%y years, %m months, %d days %H:%I:%S')."\n"; $lastJob = new \Datetime(); $lastJob->setTimestamp($lastDate); $currentJob = new \Datetime(); $nextJob = $lastJob->add($interval); echo 'Last Sent: '.$lastJob->format('Y/m/d').' | Next Job: '.$nextJob->format('Y/m/d') . ' | Today: '.$currentJob->format('Y/m/d')."\n"; if ($nextJob >= $currentJob) { echo 'ready to send'; } else { echo 'not ready to send.'; }
based on UPV4J
Output for 5.3.21 - 5.4.45, 5.6.28, 7.0.20 - 7.2.0
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/01/13 not ready to send.
Output for 7.0.6
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/05/21 not ready to send.
Output for 7.0.5
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/03 not ready to send.
Output for 7.0.4
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/10 not ready to send.
Output for 7.0.3
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/18 not ready to send.
Output for 7.0.2
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/23 not ready to send.
Output for 7.0.1
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/24 not ready to send.
Output for 7.0.0
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/27 not ready to send.
Output for 5.6.21
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/05/02 not ready to send.
Output for 5.6.20
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/10 not ready to send.
Output for 5.6.19
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/08 not ready to send.
Output for 5.6.18
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/15 not ready to send.
Output for 5.6.17
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/20 not ready to send.
Output for 5.6.16
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/28 not ready to send.
Output for 5.6.15
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/29 not ready to send.
Output for 5.6.14
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/14 not ready to send.
Output for 5.6.13
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/15 not ready to send.
Output for 5.6.12
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/20 not ready to send.
Output for 5.6.11
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/24 not ready to send.
Output for 5.6.10
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/25 not ready to send.
Output for 5.6.9
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/27 not ready to send.
Output for 5.6.8
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/30 not ready to send.
Output for 5.5.35
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/05/23 not ready to send.
Output for 5.5.34
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/11 not ready to send.
Output for 5.5.33
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/09 not ready to send.
Output for 5.5.32
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/17 not ready to send.
Output for 5.5.31
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/03/21 not ready to send.
Output for 5.5.30
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/01 not ready to send.
Output for 5.5.29
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/17 not ready to send.
Output for 5.5.28
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/21 not ready to send.
Output for 5.5.27
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/22 not ready to send.
Output for 5.5.26
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/26 not ready to send.
Output for 5.5.25
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/04/29 not ready to send.
Output for 5.5.24
Interval: 0 years, 0 months, 1 days 00:00:00 Last Sent: 2016/01/12 | Next Job: 2016/01/12 | Today: 2016/05/24 not ready to send.