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
Merge branch 'xdebug_3_5'
Merged pull request #1071
Fixed issue #2411: Native Path Mapping is not applied to the initial …
Created 2 waste_baskets; Updated 3 waste_baskets, 2 benches, and 2 other objects; Deleted a waste_basket
I walked 7.9km in 1h45m36s
RE: https://phpc.social/@phpc_tv/116274041642323081
Now that phpc.tv and phpc.social are part of the same umbrella, I've upped my yearly contributions to their Open Collective: https://opencollective.com/phpcommunity/projects/phpc-social
Merge branch 'xdebug_3_5'
Merged pull request #1070
I walked 7.2km in 1h10m26s
Fixed issue #2405: Handle minimum path in .xdebug directory discovery
I've published a new blog post: "Human Creations", on the difference in content generation by LLMs, and the creation of text, art and code by humans.
You can find it at https://derickrethans.nl/human-creations.html or at @blog
I walked 7.8km in 1h38m32s
RE: https://phpc.social/@afilina/116274024588235234
It's good to see that more and more people are realising that the Web can be for-good, without all the enshittification.
That's why I'm happy to see endeavours like phpc.tv springing up, and helping out where I can.
Taking back the control of how the Web is for people, by people, without big tech making it all shit.
Created a waste_basket; Updated 5 crossings and a bicycle_parking
I walked 10.7km in 2h35m10s
If you're in the UK (south, preferably), the International Space Station is going to be visible straight above you in about half an hour!
If you're further north than London, it moves further to the south.
Updated 2 crossings
Created 3 crossings, 2 waste_baskets, and 2 trees; Updated a crossing
Created 2 post_boxes and a crossing; Updated a newsagent shop
Updated a crossing
Updated a post_box
Created a bench; Updated a bench
Created an information; Updated 2 benches
Updated a crossing and a supermarket shop
Confirmed a restaurant


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