strtotime - Monday of current week

strtotime - Monday of current week

am 12.10.2007 00:05:04 von Chris

I am trying to output Monday of the current week i.e. if Monday is the
8th I want to display 'Monday 8th' for any date between Monday 8-14th.

I would appreciate any help, the code below is heading in the right
direction but doesn't quite give me the results I am looking for.

$givenday = mktime(0,0,0,10,08,2007);
$Monday = strtotime("Monday this week",$givenday);
echo date("j M Y H:i:s", $Monday);

Cheers,

Chris

Re: strtotime - Monday of current week

am 12.10.2007 00:29:02 von Lars Eighner

In our last episode,
<1192140304.180826.282650@g4g2000hsf.googlegroups.com>,
the lovely and talented Chris
broadcast on comp.lang.php:

> I am trying to output Monday of the current week i.e. if Monday is the
> 8th I want to display 'Monday 8th' for any date between Monday 8-14th.

> I would appreciate any help, the code below is heading in the right
> direction but doesn't quite give me the results I am looking for.

> $givenday = mktime(0,0,0,10,08,2007);
> $Monday = strtotime("Monday this week",$givenday);
> echo date("j M Y H:i:s", $Monday);

> Cheers,

> Chris

This seems to work for me.

php -r "echo date('j M Y H:i:s',strtotime('last Monday', \
strtotime('Sunday')));"

You want the Monday previous to next Sunday.

--
Lars Eighner
Countdown: 466 days to go.
What do you do when you're debranded?

Re: strtotime - Monday of current week

am 12.10.2007 00:30:08 von Hans-Peter Sauer




<1192140304.180826.282650@g4g2000hsf.googlegroups.com>

> I am trying to output Monday of the current week i.e. if Monday is the
> 8th I want to display 'Monday 8th' for any date between Monday 8-14th.
>
> I would appreciate any help, the code below is heading in the right
> direction but doesn't quite give me the results I am looking for.
>
> $givenday = mktime(0,0,0,10,08,2007);
> $Monday = strtotime("Monday this week",$givenday);
> echo date("j M Y H:i:s", $Monday);
>


$less=0;

$loopy=1;
while ($loopy<8)
{
$temp1=date("l dS",time()-$less);
$temp2=date("l dS M Y H:i:s",time()-$less);
$wsx=" $temp1 "; $qaz=strpos($wsx,"Monday"); if ($qaz==true) {break;}
$less=$less+86400;
$loopy=$loopy+1;
}

print "temp1 = $temp1
";
print "temp2 = $temp2
";

?>


--
www.vhit.co.uk
www.jpgimage.co.uk
www.phpwhois.co.uk
www.cannabiswindow.co.uk

Re: strtotime - Monday of current week

am 14.10.2007 21:24:24 von Chris

On Oct 11, 11:29 pm, Lars Eighner wrote:
> In our last episode,
> <1192140304.180826.282...@g4g2000hsf.googlegroups.com>,
> the lovely and talented Chris
> broadcast on comp.lang.php:
>
> > I am trying to output Monday of the current week i.e. if Monday is the
> > 8th I want to display 'Monday 8th' for any date between Monday 8-14th.
> > I would appreciate any help, the code below is heading in the right
> > direction but doesn't quite give me the results I am looking for.
> > $givenday = mktime(0,0,0,10,08,2007);
> > $Monday = strtotime("Monday this week",$givenday);
> > echo date("j M Y H:i:s", $Monday);
> > Cheers,
> > Chris
>
> This seems to work for me.
>
> php -r "echo date('j M Y H:i:s',strtotime('last Monday', \
> strtotime('Sunday')));"
>
> You want the Monday previous to next Sunday.
>
> --
> Lars Eighner
> Countdown: 466 days to go.
> What do you do when you're debranded?

Cheers Lars!

I wanted a link to show this monday, then the next etc. Your code
helped, will continue to build on it.

$monday = date('j M Y', strtotime('last Monday',
strtotime('Sunday')));
$unixtime_monday = strtotime($monday);
$next_monday = date('j M Y', strtotime('+1 week', $unixtime_monday));

Chris

Re: strtotime - Monday of current week

am 14.10.2007 21:29:28 von luiheidsgoeroe

On Sun, 14 Oct 2007 21:24:24 +0200, Chris =

wrote:

> On Oct 11, 11:29 pm, Lars Eighner wrote:
>> In our last episode,
>> <1192140304.180826.282...@g4g2000hsf.googlegroups.com>,
>> the lovely and talented Chris
>> broadcast on comp.lang.php:
>>
>> > I am trying to output Monday of the current week i.e. if Monday is =
the
>> > 8th I want to display 'Monday 8th' for any date between Monday 8-14=
th.
>> > I would appreciate any help, the code below is heading in the right=

>> > direction but doesn't quite give me the results I am looking for.
>> > $givenday =3D mktime(0,0,0,10,08,2007);
>> > $Monday =3D strtotime("Monday this week",$givenday);
>> > echo date("j M Y H:i:s", $Monday);
>> > Cheers,
>> > Chris
>>
>> This seems to work for me.
>>
>> php -r "echo date('j M Y H:i:s',strtotime('last Monday', \
>> strtotime('Sunday')));"
>>
>> You want the Monday previous to next Sunday.
>>
>> --
>> Lars Eighner =

>>
>> Countdown: 466 days to go.
>> What do you do when you're debranded?
>
> Cheers Lars!
>
> I wanted a link to show this monday, then the next etc. Your code
> helped, will continue to build on it.
>
> $monday =3D date('j M Y', strtotime('last Monday',
> strtotime('Sunday')));
> $unixtime_monday =3D strtotime($monday);


Euhm, what am I missing?

$monday =3D date('j M Y', strtotime('last Monday',strtotime('Sunday')));=

$unixtime_monday =3D strtotime($monday);

Would be equal to:

$unixtime_monday =3D strtotime('last Monday',strtotime('Sunday'));

is it not?
-- =

Rik Wasmus

Re: strtotime - Monday of current week

am 14.10.2007 22:59:25 von Lars Eighner

In our last episode, <1192389864.882127.326370@e9g2000prf.googlegroups.com>,
the lovely and talented Chris broadcast on comp.lang.php:

> On Oct 11, 11:29 pm, Lars Eighner wrote:
>> In our last episode,
>> <1192140304.180826.282...@g4g2000hsf.googlegroups.com>,
>> the lovely and talented Chris
>> broadcast on comp.lang.php:
>>
>> > I am trying to output Monday of the current week i.e. if Monday is the
>> > 8th I want to display 'Monday 8th' for any date between Monday 8-14th.
>> > I would appreciate any help, the code below is heading in the right
>> > direction but doesn't quite give me the results I am looking for.
>> > $givenday = mktime(0,0,0,10,08,2007);
>> > $Monday = strtotime("Monday this week",$givenday);
>> > echo date("j M Y H:i:s", $Monday);
>> > Cheers,
>> > Chris
>>
>> This seems to work for me.
>>
>> php -r "echo date('j M Y H:i:s',strtotime('last Monday', \
>> strtotime('Sunday')));"
>>
>> You want the Monday previous to next Sunday.

> Cheers Lars!

> I wanted a link to show this monday, then the next etc. Your code
> helped, will continue to build on it.

> $monday = date('j M Y', strtotime('last Monday',
> strtotime('Sunday')));
> $unixtime_monday = strtotime($monday);
> $next_monday = date('j M Y', strtotime('+1 week', $unixtime_monday));

Yes, but php strtotime already knows 'next Monday':

Sun Oct 14 15:33:54 bash3.2:ttyp0:lars
debranded~$php -r "echo date('j M Y',strtotime('next Monday'));"
15 Oct 2007

(Yes, it is broken if your php is older than 4.4.0)

The problem part of your original problem was that strtotime doesn't know
something like "Monday of this week". The difficulty of implementing that
in the strtotime function would be that people would have different
understandings of what they mean by 'this week.' For example, your problem
involves the work week (of which Sunday is the last day). Most Western
calendars use a week that ends on Saturday. You might well consider Jan. 1
to be the first day of the first week.


And it has been mentioned that:

> $monday = date('j M Y', strtotime('last Monday',
> strtotime('Sunday')));
> $unixtime_monday = strtotime($monday);

is the same as

> $unixtime_monday = strtotime('last Monday', strtotime('Sunday')));

There is no point in going string to time and back.

So even if you have old php (or want to be backwards compatible with
broken versions)

$next_monday = date('j M Y', strtotime('+1 week',
strtotime('last Monday', strtotime('Sunday'))));



--
Lars Eighner
Countdown: 463 days to go.
What do you do when you're debranded?