note 116201 added to function.strtotime
| From: | i at blackrabbit dot info | Date: | Fri, 21 Nov 2014 03:00:33 +0000 |
| Subject: | note 116201 added to function.strtotime | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-200971@lists.php.net to get a copy of this message | ||
With combining strtotime() with date() it's easy to out date-related posts with human-readable
ranges: today, yesterday, on this month, on previous month, etc..
$today = date('Y-m-d', $date);
$yesterday = date('Y-m-d', strtotime('Yesterday', $date));
$this_week_start = date('N', $date) != 1 ? date('Y-m-d',
strtotime('previous Monday', $date)) : $today;
$have_this_week = date('N', $date) > 2;
$this_week_end = $have_this_week ?
date('Y-m-d', strtotime('previous Day', strtotime($yesterday))) :
date('Y-m-d', strtotime('this Sunday', $date));
$prev_week_start = date('Y-m-d', strtotime('previous Monday',
strtotime($this_week_start)));
$prev_week_end = date('Y-m-d', strtotime('previous Sunday',
strtotime($this_week_start)));
if(strtotime($prev_week_end) >= strtotime($yesterday))
$prev_week_end = date('Y-m-d', strtotime('previous Day',
strtotime($yesterday)));
$this_month_start = date('Y-m-01', $date);
$have_this_month = strtotime($this_month_start) < strtotime($prev_week_start);
$this_month_end = $have_this_month ?
date('Y-m-d', strtotime('previous Day', strtotime($prev_week_start))) :
date('Y-m-d', strtotime('first Day of next Month', $date) - 1);
$prev_month_start = date('Y-m-01', strtotime('previous Month', $date));
$prev_month_end = date('Y-m-d', strtotime('first Day of this Month', $date) -
1);
if(strtotime($prev_month_end) >= strtotime($prev_week_start))
$prev_month_end = date('Y-m-d', strtotime($prev_week_start) - 1);
echo 'Today: ', $today, ENDL;
echo 'Yesterday: ', $yesterday, ENDL;
if($have_this_week)
{
echo 'Earlier on this week start: ', $this_week_start, ENDL;
echo 'Earlier on this week end: ', $this_week_end, ENDL;
}
echo 'On previous week start: ', $prev_week_start, ENDL;
echo 'On previous week end: ', $prev_week_end, ENDL;
if($have_this_month)
{
echo 'Earlier on this month start: ', $this_month_start, ENDL;
echo 'Earlier on this month end: ', $this_month_end, ENDL;
}
echo ($have_this_month ? 'On ' : 'Earlier on '), 'previous month start:
', $prev_month_start, ENDL;
echo ($have_this_month ? 'On ' : 'Earlier on '), 'previous month end:
', $prev_month_end, ENDL;
----
Server IP: 72.52.91.14
Probable Submitter: 62.221.76.35
----
Manual Page -- http://php.net/manual/en/function.strtotime.php
Edit -- https://master.php.net/note/edit/116201
Del: integrated -- https://master.php.net/note/delete/116201/integrated
Del: useless -- https://master.php.net/note/delete/116201/useless
Del: bad code -- https://master.php.net/note/delete/116201/bad+code
Del: spam -- https://master.php.net/note/delete/116201/spam
Del: non-english -- https://master.php.net/note/delete/116201/non-english
Del: in docs -- https://master.php.net/note/delete/116201/in+docs
Del: other reasons-- https://master.php.net/note/delete/116201
Reject -- https://master.php.net/note/reject/116201
Search -- https://master.php.net/manage/user-notes.php