note 110203 deleted from function.strtotime by aharvey

From: Date: Mon, 29 Oct 2012 02:02:51 +0000
Subject: note 110203 deleted from function.strtotime by aharvey
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-191572@lists.php.net to get a copy of this message
Note Submitter: Anonymous ---- The function of milespickens at gmail dot com calculating quarters dates needs a small fix, in order to work properly at the last day of the quarter, for example 30th September. At the moment it returns null without this fix: <?php function get_quarter( $minus = NULL ) { //put correct begin dates and end dates in Bingo array $bingo = array(); $quarters = array( 1 => array( '01/01/', '03/31/'), 2 => array( '04/01/', '06/30/'), 3 => array( '07/01/', '09/30/'), 4 => array( '10/01/', '12/31/') ); if( $minus ) { $adjust = 3 * $minus; $today = strtotime($adjust . " months", time()); } else { $today = time(); } $year = date("Y", $today); foreach($quarters as $key => $val) { $date1 = strtotime($val[0] . $year); $date2 = strtotime($val[1] . $year); $date2 += (24*60*60); // Add this line to correct timestamp for last day of the quarter if( ($today > $date1) && ($today < $date2)) { $bingo[] = $quarters[$key][0] . $year; $bingo[] = $quarters[$key][1] . $year; } } return $bingo; } $this_quarter = get_quarter( NULL ); $last_quarter = get_quarter( -1 ); $next_quarter = get_quarter( 1 ); var_dump($this_quarter); var_dump($last_quarter); var_dump($next_quarter); ?> We need to add 24 hours for the end date timestamp before compare: $date2 += (24*60*60); // Add this line to correct timestamp for last day of the quarter

« previous php.notes (#191572) next »