Hi,
I need to find the date of Monday in the current week, whats the best way of doing this in php 4?
Thanks, Ben
Hi,
I need to find the date of Monday in the current week, whats the best way of doing this in php 4?
Thanks, Ben
echo date('Y-m-d', strtotime('previous monday'));
Just one note, though. You want to make sure that it's not monday today, otherwise you will get date of previous monday, just like it says. You could do it as follows
if (date('w') == 1)
{
// today is monday
}
else
{
// find last monday
}
echo date('Y-m-d',time()+( 1 - date('w'))*24*3600);
for next week,
echo date('Y-m-d',time()+( 8 - date('w'))*24*3600);
My attempt:
<?php
$weekday = date("w") - 1;
if ($weekday < 0)
{
$weekday += 7;
}
echo "Monday this week : ", date("Y-m-d",time() - $weekday * 86400) , "\n";
?>
Try this:
return strtotime('last monday', strtotime('next sunday'));
Try this.
echo date('Y-m-d', strtotime('last monday', strtotime('next monday')));
It will return current date if today is monday, and will return last monday otherwise. At least it does on my PHP 5.2.4 under en_US locale.
$thisMonday = date('l, F d, Y', time() - ((date('w')-1) * 86400) );
Edit: explanation
date('w')
is a numeric representation of the day of the week (0=sunday, 6=saturday)So, if it is currently wednesday (day 3), monday is two days ago:
time() - (86400 * (3 - 1))
= time() - 86400 * 2
If it is monday (day 1), we get:
time() - (86400 * (1 - 1))
= time() - 86400 * 0
= time()
If it is sunday (day 0), monday is tomorrow.
time() - (86400 * (0 - 1))
= time() - -86400
= time() + 86400