function get_related_dates($projectname, $basedate) { include "cdash/config.php"; require_once "cdash/pdo.php"; $dates = array(); $db = pdo_connect("{$CDASH_DB_HOST}", "{$CDASH_DB_LOGIN}", "{$CDASH_DB_PASS}"); pdo_select_db("{$CDASH_DB_NAME}", $db); $dbQuery = pdo_query("SELECT nightlytime FROM project WHERE name='{$projectname}'"); if (pdo_num_rows($dbQuery) > 0) { $project = pdo_fetch_array($dbQuery); $nightlytime = $project['nightlytime']; //echo "query result nightlytime: " . $nightlytime . "<br/>"; } else { $nightlytime = "00:00:00"; //echo "default nightlytime: " . $nightlytime . "<br/>"; } if (!isset($basedate) || strlen($basedate) == 0) { $basedate = gmdate(FMT_DATE); } // Convert the nightly time into GMT $nightlytime = gmdate(FMT_TIME, strtotime($nightlytime)); $nightlyhour = time2hour($nightlytime); $nightlyminute = time2minute($nightlytime); $nightlysecond = time2second($nightlytime); $basemonth = date2month($basedate); $baseday = date2day($basedate); $baseyear = date2year($basedate); $dates['nightly+2'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday + 2, $baseyear); $dates['nightly+1'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday + 1, $baseyear); $dates['nightly-0'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday, $baseyear); $dates['nightly-1'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday - 1, $baseyear); $dates['nightly-2'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday - 2, $baseyear); // Snapshot of "now" // $currentgmtime = time(); $currentgmdate = gmdate(FMT_DATE, $currentgmtime); // Find the most recently past nightly time: // $todaymonth = date2month($currentgmdate); $todayday = date2day($currentgmdate); $todayyear = date2year($currentgmdate); $currentnightly = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $todaymonth, $todayday, $todayyear); while ($currentnightly > $currentgmtime) { $todayday = $todayday - 1; $currentnightly = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $todaymonth, $todayday, $todayyear); } $dates['now'] = $currentgmtime; $dates['most-recent-nightly'] = $currentnightly; $dates['today_utc'] = $currentgmdate; $dates['basedate'] = gmdate(FMT_DATE, $dates['nightly-0']); // CDash equivalent of DART1's "last rollup time" if ($dates['basedate'] === $dates['today_utc']) { // If it's today, it's now: $dates['last-rollup-time'] = $dates['now']; } else { // If it's not today, it's the nightly time on the basedate: $dates['last-rollup-time'] = $dates['nightly-0']; } return $dates; }
function get_related_dates($projectnightlytime, $basedate) { $dates = array(); $nightlytime = $projectnightlytime; if (!isset($basedate) || strlen($basedate) == 0) { $basedate = gmdate(FMT_DATE); } // Convert the nightly time into GMT $nightlytime = gmdate(FMT_TIME, strtotime($nightlytime)); $nightlyhour = time2hour($nightlytime); $nightlyminute = time2minute($nightlytime); $nightlysecond = time2second($nightlytime); $basemonth = date2month($basedate); $baseday = date2day($basedate); $baseyear = date2year($basedate); $dates['nightly+2'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday + 2, $baseyear); $dates['nightly+1'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday + 1, $baseyear); $dates['nightly-0'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday, $baseyear); $dates['nightly-1'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday - 1, $baseyear); $dates['nightly-2'] = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $basemonth, $baseday - 2, $baseyear); // Snapshot of "now" // $currentgmtime = time(); $currentgmdate = gmdate(FMT_DATE, $currentgmtime); // Find the most recently past nightly time: // $todaymonth = date2month($currentgmdate); $todayday = date2day($currentgmdate); $todayyear = date2year($currentgmdate); $currentnightly = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $todaymonth, $todayday, $todayyear); while ($currentnightly > $currentgmtime) { $todayday = $todayday - 1; $currentnightly = gmmktime($nightlyhour, $nightlyminute, $nightlysecond, $todaymonth, $todayday, $todayyear); } $dates['now'] = $currentgmtime; $dates['most-recent-nightly'] = $currentnightly; $dates['today_utc'] = $currentgmdate; $dates['basedate'] = gmdate(FMT_DATE, $dates['nightly-0']); // CDash equivalent of DART1's "last rollup time" if ($dates['basedate'] === $dates['today_utc']) { // If it's today, it's now: $dates['last-rollup-time'] = $dates['now']; } else { // If it's not today, it's the nightly time on the basedate: $dates['last-rollup-time'] = $dates['nightly-0']; } return $dates; }