3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $lastDate = '1452504837'; $interval = 'P0Y0M3D'; $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 T1FO0
Output for 5.6.28, 7.0.20 - 7.2.0
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:25 Until: 0 years, 0 months, 0 days 17:59:35 ready to send
Output for 7.0.6
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/05/21 Since: 0 years, 4 months, 10 days 03:11:24 Until: 0 years, 4 months, 7 days 03:11:24 ready to send
Output for 7.0.5
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/03 Since: 0 years, 2 months, 22 days 23:09:43 Until: 0 years, 2 months, 19 days 23:09:43 ready to send
Output for 7.0.4
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/10 Since: 0 years, 1 months, 28 days 11:16:45 Until: 0 years, 1 months, 25 days 11:16:45 ready to send
Output for 7.0.3
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/18 Since: 0 years, 2 months, 7 days 12:43:46 Until: 0 years, 2 months, 4 days 12:43:46 ready to send
Output for 7.0.2
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/23 Since: 0 years, 2 months, 11 days 18:57:26 Until: 0 years, 2 months, 8 days 18:57:26 ready to send
Output for 7.0.1
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/24 Since: 0 years, 2 months, 12 days 22:01:34 Until: 0 years, 2 months, 9 days 22:01:34 ready to send
Output for 7.0.0
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/27 Since: 0 years, 2 months, 15 days 23:54:38 Until: 0 years, 2 months, 12 days 23:54:38 ready to send
Output for 5.6.21
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/05/02 Since: 0 years, 3 months, 21 days 06:03:42 Until: 0 years, 3 months, 18 days 06:03:42 ready to send
Output for 5.6.20
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/10 Since: 0 years, 2 months, 29 days 22:11:57 Until: 0 years, 2 months, 26 days 22:11:57 ready to send
Output for 5.6.19
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/08 Since: 0 years, 1 months, 25 days 19:26:08 Until: 0 years, 1 months, 22 days 19:26:08 ready to send
Output for 5.6.18
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/15 Since: 0 years, 2 months, 4 days 04:24:11 Until: 0 years, 2 months, 1 days 04:24:11 ready to send
Output for 5.6.17
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/20 Since: 0 years, 2 months, 8 days 15:56:48 Until: 0 years, 2 months, 5 days 15:56:48 ready to send
Output for 5.6.16
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/28 Since: 0 years, 2 months, 17 days 00:44:22 Until: 0 years, 2 months, 14 days 00:44:22 ready to send
Output for 5.6.15
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/29 Since: 0 years, 2 months, 18 days 01:34:00 Until: 0 years, 2 months, 15 days 01:34:00 ready to send
Output for 5.6.14
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/14 Since: 0 years, 3 months, 3 days 07:16:26 Until: 0 years, 3 months, 0 days 07:16:26 ready to send
Output for 5.6.13
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/15 Since: 0 years, 3 months, 4 days 07:55:24 Until: 0 years, 3 months, 1 days 07:55:24 ready to send
Output for 5.6.12
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/20 Since: 0 years, 3 months, 8 days 22:24:54 Until: 0 years, 3 months, 5 days 22:24:54 ready to send
Output for 5.6.11
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/24 Since: 0 years, 3 months, 13 days 04:51:18 Until: 0 years, 3 months, 10 days 04:51:18 ready to send
Output for 5.6.10
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/25 Since: 0 years, 3 months, 14 days 06:56:52 Until: 0 years, 3 months, 11 days 06:56:52 ready to send
Output for 5.6.9
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/27 Since: 0 years, 3 months, 16 days 12:23:25 Until: 0 years, 3 months, 13 days 12:23:25 ready to send
Output for 5.6.8
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/30 Since: 0 years, 3 months, 18 days 20:52:09 Until: 0 years, 3 months, 15 days 20:52:09 ready to send
Output for 5.5.35
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/05/23 Since: 0 years, 4 months, 11 days 16:06:49 Until: 0 years, 4 months, 8 days 16:06:49 ready to send
Output for 5.5.34
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/11 Since: 0 years, 3 months, 0 days 00:25:49 Until: 0 years, 2 months, 28 days 00:25:49 ready to send
Output for 5.5.33
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/09 Since: 0 years, 1 months, 26 days 22:25:03 Until: 0 years, 1 months, 23 days 22:25:03 ready to send
Output for 5.5.32
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/17 Since: 0 years, 2 months, 6 days 08:21:58 Until: 0 years, 2 months, 3 days 08:21:58 ready to send
Output for 5.5.31
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/03/21 Since: 0 years, 2 months, 9 days 19:08:08 Until: 0 years, 2 months, 6 days 19:08:08 ready to send
Output for 5.5.30
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/01 Since: 0 years, 2 months, 21 days 03:25:12 Until: 0 years, 2 months, 18 days 03:25:12 ready to send
Output for 5.5.29
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/17 Since: 0 years, 3 months, 5 days 22:13:07 Until: 0 years, 3 months, 2 days 22:13:07 ready to send
Output for 5.5.28
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/21 Since: 0 years, 3 months, 10 days 01:44:41 Until: 0 years, 3 months, 7 days 01:44:41 ready to send
Output for 5.5.27
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/22 Since: 0 years, 3 months, 11 days 03:22:05 Until: 0 years, 3 months, 8 days 03:22:05 ready to send
Output for 5.5.26
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/26 Since: 0 years, 3 months, 15 days 09:38:22 Until: 0 years, 3 months, 12 days 09:38:22 ready to send
Output for 5.5.25
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/04/29 Since: 0 years, 3 months, 17 days 17:04:19 Until: 0 years, 3 months, 14 days 17:04:19 ready to send
Output for 5.5.24
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/05/24 Since: 0 years, 4 months, 12 days 23:32:35 Until: 0 years, 4 months, 9 days 23:32:35 ready to send
Output for 5.4.44 - 5.4.45
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:29 Until: 0 years, 0 months, 0 days 17:59:31 ready to send
Output for 5.4.42 - 5.4.43
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:30 Until: 0 years, 0 months, 0 days 17:59:30 ready to send
Output for 5.4.41
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:31 Until: 0 years, 0 months, 0 days 17:59:29 ready to send
Output for 5.4.39 - 5.4.40
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:32 Until: 0 years, 0 months, 0 days 17:59:28 ready to send
Output for 5.4.37 - 5.4.38
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:33 Until: 0 years, 0 months, 0 days 17:59:27 ready to send
Output for 5.4.35 - 5.4.36
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:34 Until: 0 years, 0 months, 0 days 17:59:26 ready to send
Output for 5.3.29, 5.4.31 - 5.4.34
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:35 Until: 0 years, 0 months, 0 days 17:59:25 ready to send
Output for 5.4.28 - 5.4.30
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:36 Until: 0 years, 0 months, 0 days 17:59:24 ready to send
Output for 5.4.25 - 5.4.27
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:37 Until: 0 years, 0 months, 0 days 17:59:23 ready to send
Output for 5.3.28, 5.4.22 - 5.4.24
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:38 Until: 0 years, 0 months, 0 days 17:59:22 ready to send
Output for 5.4.18 - 5.4.21
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:39 Until: 0 years, 0 months, 0 days 17:59:21 ready to send
Output for 5.3.26 - 5.3.27, 5.4.16 - 5.4.17
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:40 Until: 0 years, 0 months, 0 days 17:59:20 ready to send
Output for 5.3.23 - 5.3.25, 5.4.12 - 5.4.15
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:41 Until: 0 years, 0 months, 0 days 17:59:19 ready to send
Output for 5.3.21 - 5.3.22, 5.4.11
Last Sent: 2016/01/11 Interval: 0 years, 0 months, 3 days 00:00:00 Today: 2016/01/13 Since: 0 years, 0 months, 2 days 06:00:42 Until: 0 years, 0 months, 0 days 17:59:18 ready to send