Calculating start and end dates of a week.
A friend asked "How do I calculate start (monday) and end (sunday) dates from a given week number for a specified year?" Instead of having to come up with your own algorithm you can simply do the following in PHP 5.1 and higher:
<?php
// Monday
echo date(
datetime::ISO8601,
strtotime("2006W37"));
// Sunday
echo date(
datetime::ISO8601,
strtotime("2006W377"));
?>
The format is " year 'W' weeknr ( daynr )?" where the default daynr is 1 being the Monday of that week. The daynr can be in the range 0 to 7. The weeknr is the ISO week number . Please note that the " year '-W' weeknr ( '-' daynr )?" format is only supported in PHP 5.2 and higher.
Comments
Thanks Derek, that is going to make life a lot easier!
Keep it simple and just do strtotime('-1 Sunday',$currentDay);
it is simpler and uses less resources.
or you could use PEAR::Date(), it makes it very easy as well
@Ammar: Why would you want to use a wrapper class in PHP when the extension supports it?
Hey Dereck
thanks for confirming yet again why I love the Internet... I've been playing around with this particular problem for the last few days... any solution I had was not nearly as elegant and simple as this... glad I found this posting...will help tremendously.
echo date("Y-m-d", strtotime(date("Y").'W'.date('W')."7"));
If 1 for daynr represents monday, what does 0 represent? How can it accept values 0-7?
Thnx! Just what I was looking for!
Thank you very much!
Excellent example of exactly what a lot of people need. Please keep this example up for the rest of the PHP newbs like me!
You have just saved me a lot of time on deadline day at work.
Thanks!
Thank you very much. This threat was my first search result: "php calculate start end week"..
Wow. I had no clue about this. Thanks, man!
Very very usefull, I knew about the W weeks implemented in recent php but this is pretty useful, saved me on a thing I have to do at work :)
Excellent...!
Exactly what I was looking for.
Even in 2013 this is very useful, thanks! Saved me much work
Thank you! I was getting very frustrated trying to get my dates to format properly, you're a lifesaver!
Life Line
I've just finished reading "A Cheese-Monger's Tour de France", by Ned Palmer.
Now I want to try many of those! π§
I'm thrilled to announce that I'll be speaking at the 23rd edition of #phpday, the international PHP conference in Italy, organised by @grusp.
Iβll be presenting a talk titled: "Better Debugging With Xdebug".
It's in Verona, Italy, on May 14-15th 2026.
You can use my speakerβs discount code "speaker_10OFF" for 10% off at https://www.phpday.it/tickets/?utm_medium=organic&utm_source=linkedin&utm_campaign=post-speaker
Merged pull request #1066
PHP 8.6: Changes to opcache optimisations wrt function arguments
Fixed building type
Fixed addresses and building type
Updated a bus_stop, a waste_basket, and a bench
Created 2 waste_baskets; Updated 2 bus_stops and a crossing; Confirmed a dry_cleaning shop
Merge branch 'v2022'
Update data to 2026a
Sigh, the AI Slop has now come for the PHP project.
I had this little Black-capped Chickadee eating out of my hand earlier on a lovely 8k walk with @dseguy and @DaveLiddament in the snow at the back end of @ConFooCa .
Thanks Canada!
Updated a restaurant
Created a ticket shop, a bench, and a toilet
Created a picnic_table; Updated a viewpoint
Updated a shelter
I hiked 9.3km in 3h12m03s
Updated 3 restaurants
I walked 3.1km in 29m25s
I walked 4.4km in 45m01s
I walked 5.4km in 55m28s
Updated a restaurant; Confirmed a hotel
I walked 6.3km in 1h12m59s
Paraphrasing opening keynote speaker at ConFoo: "Should we go back to the waterfall method of writing massive specs upfront to feed to AI coding agents?"
I walked 1.6km in 17m29s



Shortlink
This article has a short URL available: https://drck.me/csaedoaw-4wr