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
Updated a pub
Merged pull request #1104
Drop support for PHP 8.1
Merged pull request #1103
Drop support for PHP 8.0
Merged pull request #1102
Upgrade composer for benchmarks
Merged pull request #774
PHP 7.4 has not been supported for a while
Fixed issue #1674: Inconsistent Path & Branch Coverage Reported
Merge branch 'xdebug_3_5'
Merged pull request #1101
Fixed issue #2436: Potential crash when remembering on which lines br…
I walked 8.0km in 1h30m48s
Footpath connectivity (and removing some useless/wrong ones)
Merged pull request #1063
Add 'make test-frankenphp' which also sets the current PHP version
Fixed issue #2403: Reinit debugger for requests in FrankenPHP worker …
Just stood outside for a few minutes and I got some actual rain drops on my head! The first in like two months. 🌧️ #ukrain
Updated a pub
I walked 0.8km in 10m30s
I walked 7.7km in 1h30m26s
I walked 6.7km in 1h7m37s
As I said yesterday, I never saw a Kingfisher hovering, but here is (some slightly blurry) evidence of one doing so.
#BirdPhotography #Birds #BirdsOfFediverse #Photography #Nature #NaturePhotography
Kingfisher Caught Its Lunch
This lovely chap caught a fish right in front of us, after hovering for a while.
It seemed pleased with itself, and instead of flying away to feed it to its kids, it ate it.
#BirdPhotography #Birds #BirdsOfFediverse #Photography #Nature #NaturePhotography



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