Just another WordPress.com site

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { background: transparent; border: 0; margin: 0; padding: 0; vertical-align: baseline; } body { line-height: 1; } h1, h2, h3, h4, h5, h6 { clear: both; font-weight: normal; } ol, ul { list-style: none; } blockquote { quotes: none; } blockquote:before, blockquote:after { content: ”; content: none; } del { text-decoration: line-through; } /* tables still need ‘cellspacing=”0″‘ in the markup */ table { border-collapse: collapse; border-spacing: 0; } a img { border: none; } /* =Layout ————————————————————– */ /* LAYOUT: Two columns DESCRIPTION: Two-column fixed layout with one sidebar right of content */ #container { float: left; margin: 0 -240px 0 0; width: 149%; } #content { margin: 0 280px 0 20px; } #primary, #secondary { float: right; overflow: hidden; width: 220px; } #secondary { clear: right; } #footer { clear: both; width: 100%; } /* LAYOUT: One column, no sidebar DESCRIPTION: One centered column with no sidebar */ .one-column #content { margin: 0 auto; width: 640px; } /* LAYOUT: Full width, no sidebar DESCRIPTION: Full width content with no sidebar; used for attachment pages */ .single-attachment #content { margin: 0 auto; width: 900px; } /* =Fonts ————————————————————– */ body, input, textarea, .page-title span, .pingback a.url { font-family: Raleway,’Helvetica Neue’,Helvetica,sans-serif; } h3#comments-title, h3#reply-title, #access .menu, #access div.menu ul, #cancel-comment-reply-link, .form-allowed-tags, #site-info, #site-title, #wp-calendar, .comment-meta, .comment-body tr th, .comment-body thead th, .entry-content label, .entry-content tr th, .entry-content thead th, .entry-meta, .entry-title, .entry-utility, #respond label, .navigation, .page-title, .pingback p, .reply, .widget-title, .wp-caption-text { font-family: “Helvetica Neue”, Arial, Helvetica, “Nimbus Sans L”, sans-serif; } input[type=submit] { font-family: “Helvetica Neue”, Arial, Helvetica, “Nimbus Sans L”, sans-serif; } pre { font-family: “Courier 10 Pitch”, Courier, monospace; } code { font-family: Monaco, Consolas, “Andale Mono”, “DejaVu Sans Mono”, monospace; } /* =Structure ————————————————————– */ /* The main theme structure */ #access .menu-header, div.menu, #colophon, #branding, #main, #wrapper { margin: 0 auto; /*width: 940px;*/ } #wrapper { background: none repeat scroll 0 0 #FFFFFF; border: 1px solid #CCCCCC; border-radius: 10px 10px 10px 10px; padding: 0 15px; } /* Structure the footer area */ #footer-widget-area { overflow: hidden; } #footer-widget-area .widget-area { float: left; margin-right: 20px; width: 220px; } #footer-widget-area #fourth { margin-right: 0; } #site-info { float: left; font-size: 14px; font-weight: bold; width: 700px; } #site-generator { float: right; width: 220px; } /* =Global Elements ————————————————————– */ /* Main global ‘theme’ and typographic styles */ body { background: #f1f1f1; background-attachment: fixed; } body, input, textarea { color: #666; font-size: 12px; line-height: 18px; } hr { background-color: #e7e7e7; border: 0; clear: both; height: 1px; margin-bottom: 18px; } /* Text elements */ p { margin-bottom: 18px; } ul { list-style: square; margin: 0 0 18px 1.5em; } ol { list-style: decimal; margin: 0 0 18px 1.5em; } ol ol { list-style: upper-alpha; } ol ol ol { list-style: lower-roman; } ol ol ol ol { list-style: lower-alpha; } ul ul, ol ol, ul ol, ol ul { margin-bottom: 0; } dl { margin: 0 0 24px 0; } dt { font-weight: bold; } dd { margin-bottom: 18px; } strong { font-weight: bold; } cite, em, i { font-style: italic; } big { font-size: 131.25%; } ins { background: #ffc; text-decoration: none; } blockquote { font-style: italic; padding: 0 3em; } blockquote cite, blockquote em, blockquote i { font-style: normal; } pre { background: #f7f7f7; color: #222; line-height: 18px; margin-bottom: 18px; padding: 1.5em; } abbr, acronym { border-bottom: 1px dotted #666; cursor: help; } sup, sub { height: 0; line-height: 1; position: relative; vertical-align: baseline; } sup { bottom: 1ex; } sub { top: .5ex; } input[type=”text”], textarea { background: #f9f9f9; border: 1px solid #ccc; } a:link { color: #0066cc; } a:visited { /* color: #743399; */ } a:active, a:hover { color: #ff4b33; } /* Text meant only for screen readers */ .screen-reader-text { position: absolute; left: -9000px; } /* =Header ————————————————————– */ #header { padding: 10px 0 0 0; } #site-title { float: left; font-size: 30px; line-height: 36px; margin: 0; } #site-title a { text-decoration: none; color: #000; font-size: 20px; font-weight: 100; font-family: Raleway,’Helvetica Neue’,Helvetica,sans-serif; text-transform: uppercase; } #site-description { clear: right; float: right; font-style: italic; margin: 15px 0 18px 0; font-size: 23px; font-family: Georgia, sans-serif; } /* This is the custom header image */ #branding img { border-top: 4px solid #000; border-bottom: 1px solid #000; display: block; float: left; } /* =Menu ————————————————————– */ #access { background: #000; display: block; float: left; margin: 0 auto; width: 940px; } #access .menu-header, div.menu { font-size: 13px; margin-left: 12px; width: 928px; } #access .menu-header ul, div.menu ul { list-style: none; margin: 0; } #access .menu-header li, div.menu li { float: left; position: relative; } #access a { color: #aaa; display: block; line-height: 38px; padding: 0 10px; text-decoration: none; } #access ul ul { box-shadow: 0px 3px 3px rgba(0,0,0,0.2); -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); display: none; position: absolute; top: 38px; left: 0; float: left; width: 180px; z-index: 99999; } #access ul ul li { min-width: 180px; } #access ul ul ul { left: 100%; top: 0; } #access ul ul a { background: #333; line-height: 1em; padding: 10px; width: 160px; height: auto; } #access li:hover > a, #access ul ul :hover > a { background: #333; color: #fff; } #access ul li:hover > ul { display: block; } #access ul li.current_page_item > a, #access ul li.current-menu-ancestor > a, #access ul li.current-menu-item > a, #access ul li.current-menu-parent > a { color: #fff; } * html #access ul li.current_page_item a, * html #access ul li.current-menu-ancestor a, * html #access ul li.current-menu-item a, * html #access ul li.current-menu-parent a, * html #access ul li a:hover { color: #fff; } /* =Content ————————————————————– */ #main { clear: both; overflow: hidden; /*padding: 40px 0 0 0;*/ } #content { margin-bottom: 36px; } #content, #content input, #content textarea { color: #333; font-size: 16px; line-height: 24px; } #content p, #content ul, #content ol, #content dd, #content hr { margin-bottom: 24px; font-family: Verdana,Arial,Geneva,Helvetica,sans-serif; font-size: 0.75em; } #content ul ul, #content ol ol, #content ul ol, #content ol ul { margin-bottom: 0; } #content pre, #content kbd, #content tt, #content var { font-size: 15px; line-height: 21px; } #content code { font-size: 13px; } #content dt, #content th { color: #000; } #content h1, #content h2, #content h3, #content h4, #content h5, #content h6 { color: #009BC1; line-height: 1.5em; margin: 0 0 20px 0; } #content table { border: 1px solid #e7e7e7; margin: 0 -1px 24px 0; text-align: left; width: 100%; } #content tr th, #content thead th { color: #888; font-size: 12px; font-weight: bold; line-height: 18px; padding: 9px 24px; } #content tr td { border-top: 1px solid #e7e7e7; padding: 6px 24px; } #content tr.odd td { background: #f2f7fc; } .hentry { margin: 0 0 48px 0; } .home .sticky { background: #f2f7fc; border-top: 4px solid #000; margin-left: -20px; margin-right: -20px; padding: 18px 20px; } .single .hentry { margin: 0 0 36px 0; } .page-title { color: #000; font-size: 14px; font-weight: bold; margin: 0 0 36px 0; } .page-title span { color: #333; font-size: 16px; font-style: italic; font-weight: normal; } .page-title a:link, .page-title a:visited { color: #888; text-decoration: none; } .page-title a:active, .page-title a:hover { color: #ff4b33; } #content .entry-title { color: #009BC1; font-size: 170%; font-weight: 100; margin-bottom: 0; font-family: Raleway,’Helvetica Neue’,Helvetica,sans-serif; } .entry-title a:link, .entry-title a:visited { color: #009BC1; text-decoration: none; font-family: Raleway,’Helvetica Neue’,Helvetica,sans-serif; font-size: 100%; font-weight: 100; } .entry-title a:active, .entry-title a:hover { color: #ff4b33; } .entry-meta { color: #888; font-size: 12px; } .entry-meta abbr, .entry-utility abbr { border: none; } .entry-meta abbr:hover, .entry-utility abbr:hover { border-bottom: 1px dotted #666; } .entry-content, .entry-summary { clear: both; padding: 12px 0 0 0; } #content .entry-summary p:last-child { margin-bottom: 12px; } .entry-content fieldset { border: 1px solid #e7e7e7; margin: 0 0 24px 0; padding: 24px; } .entry-content fieldset legend { background: #fff; color: #000; font-weight: bold; padding: 0 24px; } .entry-content input { margin: 0 0 24px 0; } .entry-content input.file, .entry-content input.button { margin-right: 24px; } .entry-content label { color: #888; font-size: 12px; } .entry-content select { margin: 0 0 24px 0; } .entry-content sup, .entry-content sub { font-size: 10px; } .entry-content blockquote.left { float: left; margin-left: 0; margin-right: 24px; text-align: right; width: 33%; } .entry-content blockquote.right { float: right; margin-left: 24px; margin-right: 0; text-align: left; width: 33%; } .page-link { clear: both; color: #000; font-weight: bold; margin: 0 0 22px 0; word-spacing: 0.5em; } .page-link a:link, .page-link a:visited { background: #f1f1f1; color: #333; font-weight: normal; padding: 0.5em 0.75em; text-decoration: none; } .home .sticky .page-link a { background: #d9e8f7; } .page-link a:active, .page-link a:hover { color: #ff4b33; } body.page .edit-link { clear: both; display: block; } #entry-author-info { background: #f2f7fc; border-top: 4px solid #000; clear: both; font-size: 14px; line-height: 20px; margin: 24px 0; overflow: hidden; padding: 18px 20px; } #entry-author-info #author-avatar { background: #fff; border: 1px solid #e7e7e7; float: left; height: 60px; margin: 0 -104px 0 0; padding: 11px; } #entry-author-info #author-description { float: left; margin: 0 0 0 104px; } #entry-author-info h2 { color: #000; font-size: 100%; font-weight: bold; margin-bottom: 0; } .entry-utility { clear: both; color: #888; font-size: 12px; line-height: 18px; } .entry-meta a, .entry-utility a { color: #888; } .entry-meta a:hover, .entry-utility a:hover { color: #ff4b33; } #content .video-player { padding: 0; } /* =Asides ————————————————————– */ .home #content .format-aside p, .home #content .category-asides p { font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 0; } .home .hentry.format-aside, .home .hentry.category-asides { padding: 0; } .home #content .format-aside .entry-content, .home #content .category-asides .entry-content { padding-top: 0; } /* =Gallery listing ————————————————————– */ .format-gallery .size-thumbnail img, .category-gallery .size-thumbnail img { border: 10px solid #f1f1f1; margin-bottom: 0; } .format-gallery .gallery-thumb, .category-gallery .gallery-thumb { float: left; margin-right: 20px; margin-top: -4px; } .home #content .format-gallery .entry-utility, .home #content .category-gallery .entry-utility { padding-top: 4px; } /* =Attachment pages ————————————————————– */ .attachment .entry-content .entry-caption { font-size: 140%; margin-top: 24px; } .attachment .entry-content .nav-previous a:before { content: ‘\21900a0’; } .attachment .entry-content .nav-next a:after { content: ‘0a0\2192’; } /* =Images ————————————————————– */ /* Resize images to fit the main content area. – Applies only to images uploaded via WordPress by targeting size-* classes. – Other images will be left alone. Use “size-auto” class to apply to other images. */ img.size-auto, img.size-full, img.size-large, img.size-medium, .attachment img { max-width: 100%; /* When images are too wide for containing element, force them to fit. */ height: auto; /* Override height to match resized width for correct aspect ratio. */ } .alignleft, img.alignleft { display: inline; float: left; margin-right: 24px; margin-top: 4px; } .alignright, img.alignright { display: inline; float: right; margin-left: 24px; margin-top: 4px; } .aligncenter, img.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; } img.alignleft, img.alignright, img.aligncenter { margin-bottom: 12px; } .wp-caption { background: #f1f1f1; line-height: 18px; margin-bottom: 20px; max-width: 632px !important; /* prevent too-wide images from breaking layout */ padding: 4px; text-align: center; border:1px solid #ccc; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; } .wp-caption img { margin: 5px 5px 0; } .wp-caption p.wp-caption-text { color: #888; font-size: 12px; margin: 5px; } .wp-smiley { margin: 0; } .gallery { margin: 0 auto 18px; } .gallery .gallery-item { float: left; margin-top: 0; text-align: center; width: 33%; } .gallery-columns-2 .gallery-item { width: 50%; } .gallery-columns-4 .gallery-item { width: 25%; } .gallery img { border: 2px solid #cfcfcf; } .gallery-columns-2 .attachment-medium { max-width: 92%; height: auto; } .gallery-columns-4 .attachment-thumbnail { max-width: 84%; height: auto; } .gallery .gallery-caption { color: #888; font-size: 12px; margin: 0 0 12px; } .gallery dl { margin: 0; } .gallery img { border: 10px solid #f1f1f1; } .gallery br+br { display: none; } #content .attachment img {/* single attachment images should be centered */ display: block; margin: 0 auto; } /* =Navigation ————————————————————– */ .navigation { color: #888; font-size: 12px; line-height: 18px; overflow: hidden; } .navigation a:link, .navigation a:visited { color: #888; text-decoration: none; } .navigation a:active, .navigation a:hover { color: #ff4b33; } .nav-previous { float: left; width: 50%; } .nav-next { float: right; text-align: right; width: 50%; } #nav-above { margin: 0 0 18px 0; } #nav-above { display: none; } .paged #nav-above, .single #nav-above { display: block; } #nav-below { margin: -18px 0 0 0; } /* =Comments ————————————————————– */ #comments { clear: both; font-size: 1.25em; } #comments .navigation { padding: 0 0 18px 0; } h3#comments-title, h3#reply-title { color: #000; font-size: 20px; margin-bottom: 0; } h3#comments-title { padding: 24px 0; } .commentlist { list-style: none; margin: 0; } .commentlist li.comment { border-bottom: 1px solid #e7e7e7; line-height: 24px; margin: 0 0 24px 0; padding: 0 0 0 56px; position: relative; } .commentlist li:last-child { border-bottom: none; margin-bottom: 0; } #comments .comment-body ul, #comments .comment-body ol { margin-bottom: 18px; } #comments .comment-body p:last-child { margin-bottom: 6px; } #comments .comment-body blockquote p:last-child { margin-bottom: 24px; } .commentlist ol { list-style: decimal; } .commentlist .avatar { position: absolute; top: 4px; left: 0; } .comment-author { } .comment-author cite { color: #000; font-style: normal; font-weight: bold; } .comment-author .says { font-style: italic; } .comment-meta { font-size: 12px; margin: 0 0 18px 0; } .comment-meta a:link, .comment-meta a:visited { color: #888; text-decoration: none; } .comment-meta a:active, .comment-meta a:hover { color: #ff4b33; } .commentlist .even { } .commentlist .bypostauthor { } .reply { font-size: 12px; padding: 0 0 24px 0; } .reply a, a.comment-edit-link { color: #888; } .reply a:hover, a.comment-edit-link:hover { color: #ff4b33; } .commentlist .children { list-style: none; margin: 0; } .commentlist .children li { border: none; margin: 0; } .nopassword, .nocomments { display: none; } #comments .pingback { border-bottom: 1px solid #e7e7e7; margin-bottom: 18px; padding-bottom: 18px; } .commentlist li.comment+li.pingback { margin-top: -6px; } #comments .pingback p { color: #888; display: block; font-size: 12px; line-height: 18px; margin: 0; } #comments .pingback .url { font-size: 13px; font-style: italic; } /* Comments form */ input[type=submit] { color: #333; } #respond { border-top: 1px solid #e7e7e7; margin: 24px 0; overflow: hidden; position: relative; } #respond p { margin: 0; } #respond .comment-notes { margin-bottom: 1em; } .form-allowed-tags { line-height: 1em; } .children #respond { margin: 0 48px 0 0; } h3#reply-title { margin: 18px 0; } #comments-list #respond { margin: 0 0 18px 0; } #comments-list ul #respond { margin: 0; } #cancel-comment-reply-link { font-size: 12px; font-weight: normal; line-height: 18px; } #respond .required { color: #ff4b33; font-weight: bold; } #respond label { color: #888; font-size: 12px; } #respond input { margin: 0 0 9px; width: 98%; } #respond textarea { width: 98%; } #respond .form-allowed-tags { color: #888; font-size: 12px; line-height: 18px; } #respond .form-allowed-tags code { font-size: 11px; } #respond .form-submit { margin: 12px 0; } #respond .form-submit input { font-size: 14px; width: auto; padding:5px 10px; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius: 5px; border:1px solid #bbb; } /* =Widget Areas ————————————————————– */ .widget-area { padding-top: 20px; padding-left: 20px; background-color: #eee; } .widget-area ul { list-style: none; margin-left: 0; } .widget-area ul ul { list-style: square; margin-left: 1.3em; } .widget-area select { max-width: 100%; } .widget_search #s {/* This keeps the search inputs in line */ width: 133px; } .widget_search label { display: none; } .widget-container { margin: 0 0 18px 0; } .widget-title { color: #009BC1; font-weight: 100; font-size: 17px; line-height: 20px; margin-bottom: 5px; } .widget-area a:link, .widget-area a:visited { text-decoration: none; color: #333; } .widget-area a:active, .widget-area a:hover { text-decoration: underline; } .widget-area .entry-meta { font-size: 11px; } #wp_tag_cloud div { line-height: 1.6em; } #wp-calendar { width: 100%; } #wp-calendar caption { color: #222; font-size: 14px; font-weight: bold; padding-bottom: 4px; text-align: left; } #wp-calendar thead { font-size: 11px; } #wp-calendar thead th { } #wp-calendar tbody { color: #aaa; } #wp-calendar tbody td { background: #f5f5f5; border: 1px solid #fff; padding: 3px 0 2px; text-align: center; } #wp-calendar tbody .pad { background: none; } #wp-calendar tfoot #next { text-align: right; } .widget_rss a.rsswidget { color: #000; } .widget_rss a.rsswidget:hover { color: #ff4b33; } .widget_rss .widget-title img { width: 11px; height: 11px; } /* Main sidebars */ #main .widget-area ul { margin-left: 0; padding: 0 20px 0 0; font-family: Verdana, Arial, Helvetica, sans-serif; } #main .widget-area ul ul { border: none; padding: 0; font-size: 0.95em; list-style:none; } #primary { } #secondary { } /* Footer widget areas */ #footer-widget-area { } /* =Footer ————————————————————– */ #footer { margin-bottom: 20px; } #colophon { border-top: 4px solid #000; margin-top: -4px; overflow: hidden; padding: 18px 0; } #site-info { font-weight: bold; } #site-info a { color: #000; text-decoration: none; } #site-generator { font-style: italic; position: relative; } #site-generator a { background: url(images/wordpress.png) center left no-repeat; color: #666; display: inline-block; line-height: 16px; padding-left: 20px; text-decoration: none; } #site-generator a:hover { text-decoration: underline; } img#wpstats { display: block; margin: 0 auto 10px; } /* =Mobile Safari ( iPad, iPhone and iPod Touch ) ————————————————————– */ pre { -webkit-text-size-adjust: 140%; } code { -webkit-text-size-adjust: 160%; } #access, .entry-meta, .entry-utility, .navigation, .widget-area { -webkit-text-size-adjust: 120%; } #site-description { -webkit-text-size-adjust: none; } /* =Print Style ————————————————————– */ @media print { body { background: none !important; } #wrapper { clear: both !important; display: block !important; float: none !important; position: relative !important; } #header { border-bottom: 2pt solid #000; padding-bottom: 18pt; } #colophon { border-top: 2pt solid #000; } #site-title, #site-description { float: none; line-height: 1.4em; margin: 0; padding: 0; } #site-title { font-size: 13pt; } .entry-content { font-size: 14pt; line-height: 1.6em; } .entry-title { font-size: 21pt; } #access, #branding img, #respond, .comment-edit-link, .edit-link, .navigation, .page-link, .widget-area { display: none !important; } #container, #header, #footer { margin: 0; width: 100%; } #content, .one-column #content { margin: 24pt 0 0; width: 100%; } .wp-caption p { font-size: 11pt; } #site-info, #site-generator { float: none; width: auto; } #colophon { width: auto; } img#wpstats { display: none; } #site-generator a { margin: 0; padding: 0; } #entry-author-info { border: 1px solid #e7e7e7; } #main { display: inline; } .home .sticky { border: none; } } #searchform input { border:1px solid #ccc; }

How to Check if a Date is More or Less Than a Month Ago with PHP

Let’s say we have the following problem: we have to check
whether a date is more than a month ago or less than a month ago. Many
developers go in the wrong direction by calculating the current month
and then subtracting the number of months from it. Of course, this
approach is slow and full of risks of allowing bugs. Since, two months
before January, which is the first month of the year, is actually
November, which is the eleventh month. Because of these pitfalls, this
approach is entirely wrong.

strtotime() is a lot more powerful than you think!

strtotime() is a lot more powerful than you think!

The question is whether PHP cannot help us with built-in functions to
perform these calculations for us. It is obvious, that from version
5.3.0 and later, there is an OOP section, which is great, but
unfortunately this version is still not updated everywhere. So, how to
accomplish the task?

The Wrong Approach

As I said, there are many ways to go in the wrong direction. One of
them is to subtract 30 days from current date. This is completely wrong,
because not every month has 30 days. Here, some developers will begin
to predefine arrays to indicate the number of days in each month, which
then will be used in their complicated calculations. Here is an example
of this wrong approach.

echo date('Y-m-d', strtotime(date('Y-m-d')) - 60*60*24*30);

This line is full of mistakes. First of all strtotime(date(‘Y-m-d’)) can be replaced by the more elegant strtotime(‘now’), but for this later. Another big mistake is that 60*60*24*30, which is number of seconds in 30 days can be predefined as a constant. Eventually the result is wrong, because not every month has 30 days.

The Correct Approach

A small research of the problem and the functions in versions prior
of 5.3.0 of PHP is needed. Typical case study of date formatting happen
when working with dates from a database. The following code is a
classical example.

// 2008 05 23, 2008-05-23 is stored into the DB
echo date('Y m d', strtotime('2008-05-23'));
 
// 2008 May 23
echo date('Y F d', strtotime('2008-05-23'));

The problem, perhaps, is that too often strtotime() is used like this, with exactly this type of strings. However much more interesting is that strtotime() can do much more.

strtotime() Can Do Much More

Let us first look at the documentation of this function. What parameters it accepts?

int strtotime ( string $time [, int $now = time() ] )

The function expects to be given a string containing an
English date format and will try to parse that format into a Unix
timestamp (the number of seconds since January 1 1970 00:00:00 UTC),
relative to the timestamp given in now, or the current time if now is
not supplied.

In particular we are interested in the first parameter, time.

time – A date/time string. Valid formats are explained in Date and Time Formats.

It is especially important to note what are the valid Date and Time Formats.
Here are the supported formats, but most interesting are those that are Relative.
Exactly these formats are very convenient in our case, because they
give us the ability to work with human readable strings, and here are
some examples from the documentation of strtotime().

echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";

Thus, a valid string would be “1 month ago”.

// if current date is 2011-11-04, this will return 2011-10-04
echo date('Y-m-d', strtotime('1 month ago'))

Or “-1 month”:

// the same as the example above
echo date('Y-m-d', strtotime('-1 month'));

It’s interesting that “+1 -1 month” is also a valid string.

// 2011-10-04, if today's 2011-11-04
echo date('Y-m-d', strtotime('+1 -1 month'));

In fact strtotime() can do a lot more than most of the developers
have ever imagined. Maybe its frequent use with string formatted dates
(2010-01-13) makes it a bit unknown. Here are some interesting use
cases.

// 1970-01-01, Calculations in braces are bad!
echo date('Y-m-d', strtotime('(60*60) minute'));
 
// 2 months into the future
echo date('Y-m-d', strtotime('-2 months ago'));

For instance, do you know how to get the date of the day before
yesterday? Yes 2 days before today, but here’s yet another solution.

// 1 day before yesterday
echo date('Y-m-d', strtotime('yesterday -1 day'));

Another example is the fully human readable:

// get the first monday of the current month
echo date('Y-m-d', strtotime('first monday this month'));

The Solution of the Task

Finally, what is the solution of the original task? Well, just have to check whether a date is more or less than a month ago.

// a random date
$my_date = '2011-09-23';
 
// true if my_date is more than a month ago
(strtotime($my_date) < strtotime('1 month ago'))

Advertisements

Comments on: "How to Check if a Date is More or Less Than a Month Ago with PHP" (1)

  1. For Current Date time $date = date('Y-m-d H:i:s'); $date = date('Y/m/d H:i:s');

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: