3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $cuttoff_time = "16:00"; date_default_timezone_set('Europe/London'); $store_ending_time = explode(":", $cuttoff_time); // what time on the day is cuttoff $dateNow = new DateTime('NOW'); $datedelivery = new DateTime('NOW'); $datedelivery->setTime($store_ending_time[0], $store_ending_time[1]); echo "<pre>"; print_r($datedelivery); $extraday = false; // is time after cuttof if (strtotime($dateNow->format('H:i:00')) > strtotime($store_ending_time[0] . ':' . $store_ending_time[1] . ":00")) { print_r($datedelivery); $datedelivery->modify('+1 weekday'); print_r($datedelivery); $extraday = true; } print_r($datedelivery); echo "<pre>";
based on Gngu0
Output for 5.4.30 - 5.4.45, 5.6.28, 7.0.20 - 7.2.0
<pre>DateTime Object ( [date] => 2015-12-03 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2015-12-03 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2015-12-04 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2015-12-04 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.6
<pre>DateTime Object ( [date] => 2016-05-03 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-03 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-04 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-04 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.5
<pre>DateTime Object ( [date] => 2016-04-03 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-03 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.4
<pre>DateTime Object ( [date] => 2016-03-10 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-10 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-11 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-11 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.3
<pre>DateTime Object ( [date] => 2016-03-18 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-18 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-21 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-21 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.2
<pre>DateTime Object ( [date] => 2016-03-23 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-23 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.1
<pre>DateTime Object ( [date] => 2016-03-24 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-24 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 7.0.0
<pre>DateTime Object ( [date] => 2016-03-27 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-27 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.21
<pre>DateTime Object ( [date] => 2016-05-02 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-02 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.20
<pre>DateTime Object ( [date] => 2016-04-10 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-10 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.19
<pre>DateTime Object ( [date] => 2016-03-08 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-08 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.18
<pre>DateTime Object ( [date] => 2016-03-15 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-15 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.17
<pre>DateTime Object ( [date] => 2016-03-19 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-19 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-21 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-21 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.16
<pre>DateTime Object ( [date] => 2016-03-28 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-28 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.15
<pre>DateTime Object ( [date] => 2016-03-29 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-29 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.14
<pre>DateTime Object ( [date] => 2016-04-14 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-14 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.13
<pre>DateTime Object ( [date] => 2016-04-15 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-15 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.12
<pre>DateTime Object ( [date] => 2016-04-20 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-20 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.11
<pre>DateTime Object ( [date] => 2016-04-24 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-24 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.10
<pre>DateTime Object ( [date] => 2016-04-25 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-25 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.9
<pre>DateTime Object ( [date] => 2016-04-27 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-27 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-28 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-28 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.6.8
<pre>DateTime Object ( [date] => 2016-04-30 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-30 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.35
<pre>DateTime Object ( [date] => 2016-05-22 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-22 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-23 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-23 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.34
<pre>DateTime Object ( [date] => 2016-04-11 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-11 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.33
<pre>DateTime Object ( [date] => 2016-03-09 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-09 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.32
<pre>DateTime Object ( [date] => 2016-03-17 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-17 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-18 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-18 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.31
<pre>DateTime Object ( [date] => 2016-03-21 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-03-21 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.30
<pre>DateTime Object ( [date] => 2016-04-01 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-01 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.29
<pre>DateTime Object ( [date] => 2016-04-17 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-17 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.28
<pre>DateTime Object ( [date] => 2016-04-21 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-21 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.27
<pre>DateTime Object ( [date] => 2016-04-22 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-22 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.26
<pre>DateTime Object ( [date] => 2016-04-26 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-26 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-27 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-27 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.25
<pre>DateTime Object ( [date] => 2016-04-29 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-04-29 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.5.24
<pre>DateTime Object ( [date] => 2016-05-24 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2016-05-24 16:00:00.000000 [timezone_type] => 3 [timezone] => Europe/London ) <pre>
Output for 5.3.20 - 5.4.29
<pre>DateTime Object ( [date] => 2015-12-03 16:00:00 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2015-12-03 16:00:00 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2015-12-04 00:00:00 [timezone_type] => 3 [timezone] => Europe/London ) DateTime Object ( [date] => 2015-12-04 00:00:00 [timezone_type] => 3 [timezone] => Europe/London ) <pre>