- Get week starting and ending date in PHP
- Week numbers in PHP
- How to get the date from a week number
- How to get the number of weeks in a year
- Week numbers in PHP
- How to get the date from a week number
- How to get the number of weeks in a year
- PHP date() Function
- Definition and Usage
- Syntax
- Parameter Values
- Technical Details
Get week starting and ending date in PHP
This is how you can get the week starting date or ending date by giving a week number and the year.
$monday = date ( ‘Ymd’ , strtotime ( «2013-W01-1» ));
$sunday = date ( ‘Ymd’ , strtotime ( «2013-W01-7» ));
/**
* Get starting date from week number and year
* Monday is first day of week
*
* @param unknown_type $wk_num
* @param unknown_type $yr
* @param unknown_type $first
* @param unknown_type $format
* @return unknown
*/
function week_start_date ( $week , $year , $format = ‘Ymd’ , $date = FALSE ) ?php
if ( $date ) $week = date ( «W» , strtotime ( $date ));
$year = date ( «o» , strtotime ( $date ));
>
$desiredMonday = date ( $format , strtotime ( » $year -W $week -1″ ));
$sStartDate = week_start_date ( $week_number , $year );
$sEndDate = date ( ‘Y-m-d’ , strtotime ( ‘+6 days’ , strtotime ( $sStartDate )));
Going from date or timestamp to get the week start and end date this call might be a better way to go.
$time = strtotime ( «2011-01-01» );
//or
$time = strtotime ( «2010-12-31» );
?php
$first_day_of_week = date ( ‘Y-m-d’ , strtotime ( ‘Last Monday’ , $time ));
$last_day_of_week = date ( ‘Y-m-d’ , strtotime ( ‘Next Sunday’ , $time ));
//Will give the same result
//2010-12-27
//2011-01-02
?>
/**
* Get week and its start and ending date
*
* @param unknown_type $date
*/
function week_start_end_by_date ( $date , $format = ‘Ymd’ ) ?php
//Is $date timestamp or date?
if ( is_numeric ( $date ) AND strlen ( $date ) == 10 ) $time = $date ;
>else $time = strtotime ( $date );
>
$week [ ‘week’ ] = date ( ‘W’ , $time );
$week [ ‘year’ ] = date ( ‘o’ , $time );
$week [ ‘year_week’ ] = date ( ‘oW’ , $time );
$first_day_of_week_timestamp = strtotime ( $week [ ‘year’ ]. «W» . str_pad ( $week [ ‘week’ ], 2 , «0» , STR_PAD_LEFT ));
$week [ ‘first_day_of_week’ ] = date ( $format , $first_day_of_week_timestamp );
$week [ ‘first_day_of_week_timestamp’ ] = $first_day_of_week_timestamp ;
$last_day_of_week_timestamp = strtotime ( $week [ ‘first_day_of_week’ ]. » +6 days» );
$week [ ‘last_day_of_week’ ] = date ( $format , $last_day_of_week_timestamp );
$week [ ‘last_day_of_week_timestamp’ ] = $last_day_of_week_timestamp ;
Week numbers in PHP
To get the ISO week number (1-53) of a date represented by a Unix timestamp, use idate(‘W’, $timestamp ) or strftime(‘%-V’, $timestamp ) .
For a date represented by a DateTime instance, use intval( $dateTime ->format(‘W’)) . Note that format() returns the week number zero-prefixed (e.g. 05), so you need intval to strip the leading zero.
To get the corresponding four-digit year (e.g. 2023), use idate(‘o’, $timestamp ) or strftime(‘%G’, $timestamp ) or $dateTime ->format(‘o’) .
Read more about strftime(), idate() and DateTime::format() in the PHP manual.
How to get the date from a week number
To get the Unix timestamp representing the start of the week (Monday at midnight), use strtotime(sprintf(«%4dW%02d», $year , $week )) .
$year is a 4-digit year (e.g. 2023), and $week is an ISO week number (1-53). The sprintf() call generates a week string in ISO 8601 format, e.g. «2023W01».
To get the start of the week as a DateTime object, use $date = new DateTime(‘midnight’); $date->setISODate( $year , $week );
Read more about strtotime() in the PHP manual.
How to get the number of weeks in a year
To get the number of ISO weeks (i.e. the number of the last week) in a year, use idate(‘W’, mktime(0, 0, 0, 12, 28, $year )) .
This is based on the fact that the last week of the year always includes 28 December.
A lot of software that deal with dates has poor support for week number, in particular the ISO week numbering scheme that is used on this site. The concept of week numbers is virtually unknown in large parts of the world, so adding support for them is not high on the agenda for most software companies. However, with a few tricks it is often possible to make week numbers calculations, even if the application does not have native support for week numbers.
These pages explain how to use week numbers in various popular software applications and programming languages.
Can we use your data to tailor ads for you?
Our partners will collect data and use cookies for ad personalization and measurement.
Week numbers in PHP
To get the ISO week number (1-53) of a date represented by a Unix timestamp, use idate(‘W’, $timestamp ) or strftime(‘%-V’, $timestamp ) .
For a date represented by a DateTime instance, use intval( $dateTime ->format(‘W’)) . Note that format() returns the week number zero-prefixed (e.g. 05), so you need intval to strip the leading zero.
To get the corresponding four-digit year (e.g. 2023), use idate(‘o’, $timestamp ) or strftime(‘%G’, $timestamp ) or $dateTime ->format(‘o’) .
Read more about strftime(), idate() and DateTime::format() in the PHP manual.
How to get the date from a week number
To get the Unix timestamp representing the start of the week (Monday at midnight), use strtotime(sprintf(«%4dW%02d», $year , $week )) .
$year is a 4-digit year (e.g. 2023), and $week is an ISO week number (1-53). The sprintf() call generates a week string in ISO 8601 format, e.g. «2023W01».
To get the start of the week as a DateTime object, use $date = new DateTime(‘midnight’); $date->setISODate( $year , $week );
Read more about strtotime() in the PHP manual.
How to get the number of weeks in a year
To get the number of ISO weeks (i.e. the number of the last week) in a year, use idate(‘W’, mktime(0, 0, 0, 12, 28, $year )) .
This is based on the fact that the last week of the year always includes 28 December.
A lot of software that deal with dates has poor support for week number, in particular the ISO week numbering scheme that is used on this site. The concept of week numbers is virtually unknown in large parts of the world, so adding support for them is not high on the agenda for most software companies. However, with a few tricks it is often possible to make week numbers calculations, even if the application does not have native support for week numbers.
These pages explain how to use week numbers in various popular software applications and programming languages.
Can we use your data to tailor ads for you?
Our partners will collect data and use cookies for ad personalization and measurement.
PHP date() Function
Format a local date and time and return the formatted date strings:
// Prints the day, date, month, year, time, AM or PM
echo date(«l jS \of F Y h:i:s A»);
?>
Definition and Usage
The date() function formats a local date and time, and returns the formatted date string.
Syntax
Parameter Values
- d — The day of the month (from 01 to 31)
- D — A textual representation of a day (three letters)
- j — The day of the month without leading zeros (1 to 31)
- l (lowercase ‘L’) — A full textual representation of a day
- N — The ISO-8601 numeric representation of a day (1 for Monday, 7 for Sunday)
- S — The English ordinal suffix for the day of the month (2 characters st, nd, rd or th. Works well with j)
- w — A numeric representation of the day (0 for Sunday, 6 for Saturday)
- z — The day of the year (from 0 through 365)
- W — The ISO-8601 week number of year (weeks starting on Monday)
- F — A full textual representation of a month (January through December)
- m — A numeric representation of a month (from 01 to 12)
- M — A short textual representation of a month (three letters)
- n — A numeric representation of a month, without leading zeros (1 to 12)
- t — The number of days in the given month
- L — Whether it’s a leap year (1 if it is a leap year, 0 otherwise)
- o — The ISO-8601 year number
- Y — A four digit representation of a year
- y — A two digit representation of a year
- a — Lowercase am or pm
- A — Uppercase AM or PM
- B — Swatch Internet time (000 to 999)
- g — 12-hour format of an hour (1 to 12)
- G — 24-hour format of an hour (0 to 23)
- h — 12-hour format of an hour (01 to 12)
- H — 24-hour format of an hour (00 to 23)
- i — Minutes with leading zeros (00 to 59)
- s — Seconds, with leading zeros (00 to 59)
- u — Microseconds (added in PHP 5.2.2)
- e — The timezone identifier (Examples: UTC, GMT, Atlantic/Azores)
- I (capital i) — Whether the date is in daylights savings time (1 if Daylight Savings Time, 0 otherwise)
- O — Difference to Greenwich time (GMT) in hours (Example: +0100)
- P — Difference to Greenwich time (GMT) in hours:minutes (added in PHP 5.1.3)
- T — Timezone abbreviations (Examples: EST, MDT)
- Z — Timezone offset in seconds. The offset for timezones west of UTC is negative (-43200 to 50400)
- c — The ISO-8601 date (e.g. 2013-05-05T16:34:42+00:00)
- r — The RFC 2822 formatted date (e.g. Fri, 12 Apr 2013 12:01:05 +0200)
- U — The seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
and the following predefined constants can also be used (available since PHP 5.1.0):
- DATE_ATOM — Atom (example: 2013-04-12T15:52:01+00:00)
- DATE_COOKIE — HTTP Cookies (example: Friday, 12-Apr-13 15:52:01 UTC)
- DATE_ISO8601 — ISO-8601 (example: 2013-04-12T15:52:01+0000)
- DATE_RFC822 — RFC 822 (example: Fri, 12 Apr 13 15:52:01 +0000)
- DATE_RFC850 — RFC 850 (example: Friday, 12-Apr-13 15:52:01 UTC)
- DATE_RFC1036 — RFC 1036 (example: Fri, 12 Apr 13 15:52:01 +0000)
- DATE_RFC1123 — RFC 1123 (example: Fri, 12 Apr 2013 15:52:01 +0000)
- DATE_RFC2822 — RFC 2822 (Fri, 12 Apr 2013 15:52:01 +0000)
- DATE_RFC3339 — Same as DATE_ATOM (since PHP 5.1.3)
- DATE_RSS — RSS (Fri, 12 Aug 2013 15:52:01 +0000)
- DATE_W3C — World Wide Web Consortium (example: 2013-04-12T15:52:01+00:00)
Technical Details
Return Value: | Returns a formatted date string on success. FALSE on failure + an E_WARNING |
---|---|
PHP Version: | 4+ |
Changelog: | PHP 5.1.0: Added E_STRICT and E_NOTICE time zone errors. Valid range of timestamp is now from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. Before version 5.1.0 timestamp was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows). PHP 5.1.1: Added constants of standard date/time formats that can be used to specify the format parameter |
❮ PHP Date/Time Reference