3v4l.org

run code in 300+ PHP versions simultaneously
<?php $m = 1; $y = 2016; echo "Original date Snaps to\n\n"; foreach (range(1, 31) as $day) { if($day <= 9){ $day = '0'.$day; } ///////////////////////////// // this is the important bit $snap = strtotime("monday this week",strtotime("$m/$day/$y")); ///////////////////////////// echo str_pad(date('l',strtotime("$m/$day/$y")), 9, " ", STR_PAD_LEFT)," $m/$day/$y: ",date('r',$snap),"\n"; }
Output for 5.6.23 - 5.6.40, 7.0.8 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Original date Snaps to Friday 1/01/2016: Mon, 28 Dec 2015 00:00:00 +0100 Saturday 1/02/2016: Mon, 28 Dec 2015 00:00:00 +0100 Sunday 1/03/2016: Mon, 28 Dec 2015 00:00:00 +0100 Monday 1/04/2016: Mon, 04 Jan 2016 00:00:00 +0100 Tuesday 1/05/2016: Mon, 04 Jan 2016 00:00:00 +0100 Wednesday 1/06/2016: Mon, 04 Jan 2016 00:00:00 +0100 Thursday 1/07/2016: Mon, 04 Jan 2016 00:00:00 +0100 Friday 1/08/2016: Mon, 04 Jan 2016 00:00:00 +0100 Saturday 1/09/2016: Mon, 04 Jan 2016 00:00:00 +0100 Sunday 1/10/2016: Mon, 04 Jan 2016 00:00:00 +0100 Monday 1/11/2016: Mon, 11 Jan 2016 00:00:00 +0100 Tuesday 1/12/2016: Mon, 11 Jan 2016 00:00:00 +0100 Wednesday 1/13/2016: Mon, 11 Jan 2016 00:00:00 +0100 Thursday 1/14/2016: Mon, 11 Jan 2016 00:00:00 +0100 Friday 1/15/2016: Mon, 11 Jan 2016 00:00:00 +0100 Saturday 1/16/2016: Mon, 11 Jan 2016 00:00:00 +0100 Sunday 1/17/2016: Mon, 11 Jan 2016 00:00:00 +0100 Monday 1/18/2016: Mon, 18 Jan 2016 00:00:00 +0100 Tuesday 1/19/2016: Mon, 18 Jan 2016 00:00:00 +0100 Wednesday 1/20/2016: Mon, 18 Jan 2016 00:00:00 +0100 Thursday 1/21/2016: Mon, 18 Jan 2016 00:00:00 +0100 Friday 1/22/2016: Mon, 18 Jan 2016 00:00:00 +0100 Saturday 1/23/2016: Mon, 18 Jan 2016 00:00:00 +0100 Sunday 1/24/2016: Mon, 18 Jan 2016 00:00:00 +0100 Monday 1/25/2016: Mon, 25 Jan 2016 00:00:00 +0100 Tuesday 1/26/2016: Mon, 25 Jan 2016 00:00:00 +0100 Wednesday 1/27/2016: Mon, 25 Jan 2016 00:00:00 +0100 Thursday 1/28/2016: Mon, 25 Jan 2016 00:00:00 +0100 Friday 1/29/2016: Mon, 25 Jan 2016 00:00:00 +0100 Saturday 1/30/2016: Mon, 25 Jan 2016 00:00:00 +0100 Sunday 1/31/2016: Mon, 25 Jan 2016 00:00:00 +0100
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Original date Snaps to Friday 1/01/2016: Mon, 28 Dec 2015 00:00:00 +0100 Saturday 1/02/2016: Mon, 28 Dec 2015 00:00:00 +0100 Sunday 1/03/2016: Mon, 28 Dec 2015 00:00:00 +0100 Monday 1/04/2016: Mon, 04 Jan 2016 00:00:00 +0100 Tuesday 1/05/2016: Mon, 04 Jan 2016 00:00:00 +0100 Wednesday 1/06/2016: Mon, 04 Jan 2016 00:00:00 +0100 Thursday 1/07/2016: Mon, 04 Jan 2016 00:00:00 +0100 Friday 1/08/2016: Mon, 04 Jan 2016 00:00:00 +0100 Saturday 1/09/2016: Mon, 04 Jan 2016 00:00:00 +0100 Sunday 1/10/2016: Mon, 04 Jan 2016 00:00:00 +0100 Monday 1/11/2016: Mon, 11 Jan 2016 00:00:00 +0100 Tuesday 1/12/2016: Mon, 11 Jan 2016 00:00:00 +0100 Wednesday 1/13/2016: Mon, 11 Jan 2016 00:00:00 +0100 Thursday 1/14/2016: Mon, 11 Jan 2016 00:00:00 +0100 Friday 1/15/2016: Mon, 11 Jan 2016 00:00:00 +0100 Saturday 1/16/2016: Mon, 11 Jan 2016 00:00:00 +0100 Sunday 1/17/2016: Mon, 11 Jan 2016 00:00:00 +0100 Monday 1/18/2016: Mon, 18 Jan 2016 00:00:00 +0100 Tuesday 1/19/2016: Mon, 18 Jan 2016 00:00:00 +0100 Wednesday 1/20/2016: Mon, 18 Jan 2016 00:00:00 +0100 Thursday 1/21/2016: Mon, 18 Jan 2016 00:00:00 +0100 Friday 1/22/2016: Mon, 18 Jan 2016 00:00:00 +0100 Saturday 1/23/2016: Mon, 18 Jan 2016 00:00:00 +0100 Sunday 1/24/2016: Mon, 18 Jan 2016 00:00:00 +0100 Monday 1/25/2016: Mon, 25 Jan 2016 00:00:00 +0100 Tuesday 1/26/2016: Mon, 25 Jan 2016 00:00:00 +0100 Wednesday 1/27/2016: Mon, 25 Jan 2016 00:00:00 +0100 Thursday 1/28/2016: Mon, 25 Jan 2016 00:00:00 +0100 Friday 1/29/2016: Mon, 25 Jan 2016 00:00:00 +0100 Saturday 1/30/2016: Mon, 25 Jan 2016 00:00:00 +0100 Sunday 1/31/2016: Mon, 25 Jan 2016 00:00:00 +0100
Output for 7.3.32 - 7.3.33, 8.0.13
Original date Snaps to Friday 1/01/2016: Mon, 28 Dec 2015 00:00:00 +0000 Saturday 1/02/2016: Mon, 28 Dec 2015 00:00:00 +0000 Sunday 1/03/2016: Mon, 28 Dec 2015 00:00:00 +0000 Monday 1/04/2016: Mon, 04 Jan 2016 00:00:00 +0000 Tuesday 1/05/2016: Mon, 04 Jan 2016 00:00:00 +0000 Wednesday 1/06/2016: Mon, 04 Jan 2016 00:00:00 +0000 Thursday 1/07/2016: Mon, 04 Jan 2016 00:00:00 +0000 Friday 1/08/2016: Mon, 04 Jan 2016 00:00:00 +0000 Saturday 1/09/2016: Mon, 04 Jan 2016 00:00:00 +0000 Sunday 1/10/2016: Mon, 04 Jan 2016 00:00:00 +0000 Monday 1/11/2016: Mon, 11 Jan 2016 00:00:00 +0000 Tuesday 1/12/2016: Mon, 11 Jan 2016 00:00:00 +0000 Wednesday 1/13/2016: Mon, 11 Jan 2016 00:00:00 +0000 Thursday 1/14/2016: Mon, 11 Jan 2016 00:00:00 +0000 Friday 1/15/2016: Mon, 11 Jan 2016 00:00:00 +0000 Saturday 1/16/2016: Mon, 11 Jan 2016 00:00:00 +0000 Sunday 1/17/2016: Mon, 11 Jan 2016 00:00:00 +0000 Monday 1/18/2016: Mon, 18 Jan 2016 00:00:00 +0000 Tuesday 1/19/2016: Mon, 18 Jan 2016 00:00:00 +0000 Wednesday 1/20/2016: Mon, 18 Jan 2016 00:00:00 +0000 Thursday 1/21/2016: Mon, 18 Jan 2016 00:00:00 +0000 Friday 1/22/2016: Mon, 18 Jan 2016 00:00:00 +0000 Saturday 1/23/2016: Mon, 18 Jan 2016 00:00:00 +0000 Sunday 1/24/2016: Mon, 18 Jan 2016 00:00:00 +0000 Monday 1/25/2016: Mon, 25 Jan 2016 00:00:00 +0000 Tuesday 1/26/2016: Mon, 25 Jan 2016 00:00:00 +0000 Wednesday 1/27/2016: Mon, 25 Jan 2016 00:00:00 +0000 Thursday 1/28/2016: Mon, 25 Jan 2016 00:00:00 +0000 Friday 1/29/2016: Mon, 25 Jan 2016 00:00:00 +0000 Saturday 1/30/2016: Mon, 25 Jan 2016 00:00:00 +0000 Sunday 1/31/2016: Mon, 25 Jan 2016 00:00:00 +0000
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.22, 7.0.0 - 7.0.7
Original date Snaps to Friday 1/01/2016: Mon, 28 Dec 2015 00:00:00 +0100 Saturday 1/02/2016: Mon, 28 Dec 2015 00:00:00 +0100 Sunday 1/03/2016: Mon, 04 Jan 2016 00:00:00 +0100 Monday 1/04/2016: Mon, 04 Jan 2016 00:00:00 +0100 Tuesday 1/05/2016: Mon, 04 Jan 2016 00:00:00 +0100 Wednesday 1/06/2016: Mon, 04 Jan 2016 00:00:00 +0100 Thursday 1/07/2016: Mon, 04 Jan 2016 00:00:00 +0100 Friday 1/08/2016: Mon, 04 Jan 2016 00:00:00 +0100 Saturday 1/09/2016: Mon, 04 Jan 2016 00:00:00 +0100 Sunday 1/10/2016: Mon, 11 Jan 2016 00:00:00 +0100 Monday 1/11/2016: Mon, 11 Jan 2016 00:00:00 +0100 Tuesday 1/12/2016: Mon, 11 Jan 2016 00:00:00 +0100 Wednesday 1/13/2016: Mon, 11 Jan 2016 00:00:00 +0100 Thursday 1/14/2016: Mon, 11 Jan 2016 00:00:00 +0100 Friday 1/15/2016: Mon, 11 Jan 2016 00:00:00 +0100 Saturday 1/16/2016: Mon, 11 Jan 2016 00:00:00 +0100 Sunday 1/17/2016: Mon, 18 Jan 2016 00:00:00 +0100 Monday 1/18/2016: Mon, 18 Jan 2016 00:00:00 +0100 Tuesday 1/19/2016: Mon, 18 Jan 2016 00:00:00 +0100 Wednesday 1/20/2016: Mon, 18 Jan 2016 00:00:00 +0100 Thursday 1/21/2016: Mon, 18 Jan 2016 00:00:00 +0100 Friday 1/22/2016: Mon, 18 Jan 2016 00:00:00 +0100 Saturday 1/23/2016: Mon, 18 Jan 2016 00:00:00 +0100 Sunday 1/24/2016: Mon, 25 Jan 2016 00:00:00 +0100 Monday 1/25/2016: Mon, 25 Jan 2016 00:00:00 +0100 Tuesday 1/26/2016: Mon, 25 Jan 2016 00:00:00 +0100 Wednesday 1/27/2016: Mon, 25 Jan 2016 00:00:00 +0100 Thursday 1/28/2016: Mon, 25 Jan 2016 00:00:00 +0100 Friday 1/29/2016: Mon, 25 Jan 2016 00:00:00 +0100 Saturday 1/30/2016: Mon, 25 Jan 2016 00:00:00 +0100 Sunday 1/31/2016: Mon, 01 Feb 2016 00:00:00 +0100

preferences:
230.94 ms | 405 KiB | 330 Q