3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $lastDate = '1452504837'; $interval = 'P0Y0M1D'; $lastJob = new \Datetime(); $lastJob->setTimestamp($lastDate); echo 'Last Sent: '.$lastJob->format('Y/m/d')."\n"; $interval = new DateInterval($interval); echo 'Interval: '.$interval->format('%y years, %m months, %d days %H:%I:%S')."\n"; $currentJob = new \Datetime(); echo 'Today: '.$currentJob->format('Y/m/d')."\n\n"; $sinceLastJob = $lastJob->diff($currentJob); echo 'Since: '.$sinceLastJob->format('%y years, %m months, %d days %H:%I:%S')."\n"; $untilNextJob = $lastJob->add($interval)->diff($currentJob); echo 'Until: '.$untilNextJob->format('%y years, %m months, %d days %H:%I:%S')."\n"; if ($sinceLastJob > $interval) { echo 'ready to send'; } else { echo 'not ready to send.'; }
based on H3G0n
Output for 5.6.28, 7.0.20 - 7.2.0
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:01:54 Until: 0 years, 0 months, 1 days 06:01:54 not ready to send.
Output for 7.0.6
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/05/21 Since: 0 years, 4 months, 10 days 03:11:23 Until: 0 years, 4 months, 9 days 03:11:23 not ready to send.
Output for 7.0.5
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/03 Since: 0 years, 2 months, 22 days 23:09:42 Until: 0 years, 2 months, 21 days 23:09:42 not ready to send.
Output for 7.0.4
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/10 Since: 0 years, 1 months, 28 days 11:16:44 Until: 0 years, 1 months, 27 days 11:16:44 not ready to send.
Output for 7.0.3
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/18 Since: 0 years, 2 months, 7 days 12:43:45 Until: 0 years, 2 months, 6 days 12:43:45 not ready to send.
Output for 7.0.2
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/23 Since: 0 years, 2 months, 11 days 18:57:25 Until: 0 years, 2 months, 10 days 18:57:25 not ready to send.
Output for 7.0.1
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/24 Since: 0 years, 2 months, 12 days 22:01:33 Until: 0 years, 2 months, 11 days 22:01:33 not ready to send.
Output for 7.0.0
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/27 Since: 0 years, 2 months, 15 days 23:54:37 Until: 0 years, 2 months, 14 days 23:54:37 not ready to send.
Output for 5.6.21
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/05/02 Since: 0 years, 3 months, 21 days 06:03:42 Until: 0 years, 3 months, 20 days 06:03:42 not ready to send.
Output for 5.6.20
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/10 Since: 0 years, 2 months, 29 days 22:11:56 Until: 0 years, 2 months, 28 days 22:11:56 not ready to send.
Output for 5.6.19
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/08 Since: 0 years, 1 months, 25 days 19:26:07 Until: 0 years, 1 months, 24 days 19:26:07 not ready to send.
Output for 5.6.18
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/15 Since: 0 years, 2 months, 4 days 04:24:10 Until: 0 years, 2 months, 3 days 04:24:10 not ready to send.
Output for 5.6.17
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/20 Since: 0 years, 2 months, 8 days 15:56:47 Until: 0 years, 2 months, 7 days 15:56:47 not ready to send.
Output for 5.6.16
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/28 Since: 0 years, 2 months, 17 days 00:44:22 Until: 0 years, 2 months, 16 days 00:44:22 not ready to send.
Output for 5.6.15
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/29 Since: 0 years, 2 months, 18 days 01:33:59 Until: 0 years, 2 months, 17 days 01:33:59 not ready to send.
Output for 5.6.14
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/14 Since: 0 years, 3 months, 3 days 07:16:25 Until: 0 years, 3 months, 2 days 07:16:25 not ready to send.
Output for 5.6.13
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/15 Since: 0 years, 3 months, 4 days 07:55:23 Until: 0 years, 3 months, 3 days 07:55:23 not ready to send.
Output for 5.6.12
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/20 Since: 0 years, 3 months, 8 days 22:24:53 Until: 0 years, 3 months, 7 days 22:24:53 not ready to send.
Output for 5.6.11
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/24 Since: 0 years, 3 months, 13 days 04:51:17 Until: 0 years, 3 months, 12 days 04:51:17 not ready to send.
Output for 5.6.10
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/25 Since: 0 years, 3 months, 14 days 06:56:52 Until: 0 years, 3 months, 13 days 06:56:52 not ready to send.
Output for 5.6.9
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/27 Since: 0 years, 3 months, 16 days 12:23:24 Until: 0 years, 3 months, 15 days 12:23:24 not ready to send.
Output for 5.6.8
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/30 Since: 0 years, 3 months, 18 days 20:52:09 Until: 0 years, 3 months, 17 days 20:52:09 not ready to send.
Output for 5.5.35
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/05/23 Since: 0 years, 4 months, 11 days 16:06:48 Until: 0 years, 4 months, 10 days 16:06:48 not ready to send.
Output for 5.5.34
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/11 Since: 0 years, 3 months, 0 days 00:25:49 Until: 0 years, 2 months, 30 days 00:25:49 not ready to send.
Output for 5.5.33
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/09 Since: 0 years, 1 months, 26 days 22:25:02 Until: 0 years, 1 months, 25 days 22:25:02 not ready to send.
Output for 5.5.32
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/17 Since: 0 years, 2 months, 6 days 08:21:57 Until: 0 years, 2 months, 5 days 08:21:57 not ready to send.
Output for 5.5.31
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/03/21 Since: 0 years, 2 months, 9 days 19:08:07 Until: 0 years, 2 months, 8 days 19:08:07 not ready to send.
Output for 5.5.30
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/01 Since: 0 years, 2 months, 21 days 03:25:11 Until: 0 years, 2 months, 20 days 03:25:11 not ready to send.
Output for 5.5.29
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/17 Since: 0 years, 3 months, 5 days 22:13:06 Until: 0 years, 3 months, 4 days 22:13:06 not ready to send.
Output for 5.5.28
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/21 Since: 0 years, 3 months, 10 days 01:44:40 Until: 0 years, 3 months, 9 days 01:44:40 not ready to send.
Output for 5.5.27
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/22 Since: 0 years, 3 months, 11 days 03:22:05 Until: 0 years, 3 months, 10 days 03:22:05 not ready to send.
Output for 5.5.26
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/26 Since: 0 years, 3 months, 15 days 09:38:22 Until: 0 years, 3 months, 14 days 09:38:22 not ready to send.
Output for 5.5.25
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/04/29 Since: 0 years, 3 months, 17 days 17:04:18 Until: 0 years, 3 months, 16 days 17:04:18 not ready to send.
Output for 5.5.24
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/05/24 Since: 0 years, 4 months, 12 days 23:32:33 Until: 0 years, 4 months, 11 days 23:32:33 not ready to send.
Output for 5.4.45
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:01:57 Until: 0 years, 0 months, 1 days 06:01:57 not ready to send.
Output for 5.4.44
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:01:58 Until: 0 years, 0 months, 1 days 06:01:58 not ready to send.
Output for 5.4.42 - 5.4.43
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:01:59 Until: 0 years, 0 months, 1 days 06:01:59 not ready to send.
Output for 5.4.40 - 5.4.41
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:00 Until: 0 years, 0 months, 1 days 06:02:00 not ready to send.
Output for 5.4.38 - 5.4.39
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:01 Until: 0 years, 0 months, 1 days 06:02:01 not ready to send.
Output for 5.4.36 - 5.4.37
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:02 Until: 0 years, 0 months, 1 days 06:02:02 not ready to send.
Output for 5.4.34 - 5.4.35
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:03 Until: 0 years, 0 months, 1 days 06:02:03 not ready to send.
Output for 5.3.29, 5.4.31 - 5.4.32
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:04 Until: 0 years, 0 months, 1 days 06:02:04 not ready to send.
Output for 5.4.28 - 5.4.30
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:05 Until: 0 years, 0 months, 1 days 06:02:05 not ready to send.
Output for 5.4.25 - 5.4.27
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:06 Until: 0 years, 0 months, 1 days 06:02:06 not ready to send.
Output for 5.3.28, 5.4.21 - 5.4.24
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:07 Until: 0 years, 0 months, 1 days 06:02:07 not ready to send.
Output for 5.4.18 - 5.4.20
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:08 Until: 0 years, 0 months, 1 days 06:02:08 not ready to send.
Output for 5.3.26 - 5.3.27, 5.4.15 - 5.4.17
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:09 Until: 0 years, 0 months, 1 days 06:02:09 not ready to send.
Output for 5.3.21 - 5.3.25, 5.4.12 - 5.4.14
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:10 Until: 0 years, 0 months, 1 days 06:02:10 not ready to send.
Output for 5.4.11
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 1 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:02:11 Until: 0 years, 0 months, 1 days 06:02:11 not ready to send.