/**
* format a date by padding it with leading '0'.
*
- * @param array $date ('Y', 'M', 'd')
- * @param string $separator the seperator to use when formatting the date
- * @param string $invalidDate what to return if the date is invalid
+ * @param array $date ('Y', 'M', 'd')
+ * @param string $separator the seperator to use when formatting the date
+ * @param int|string $invalidDate what to return if the date is invalid
*
* @return string - formatted string for date
*
/**
* return abbreviated month names according to the locale
*
+ * @param bool $month
+ *
* @return array 1-based array with abbreviated month names
*
* @static
return $fullMonthNames;
}
+ /**
+ * @param $string
+ *
+ * @return int
+ */
static function unixTime($string) {
if (empty($string)) {
return 0;
* %P - uppercase ante/post meridiem ('AM', 'PM')
* %Y - year as a decimal number including the century ('2005')
*
- * @param string $date date and time in 'YYYY-MM-DD hh:mm:ss' format
- * @param string $format the output format
- * @param array $dateParts an array with the desired date parts
+ * @param string $dateString
+ * @param string $format the output format
+ * @param array $dateParts an array with the desired date parts
*
+ * @internal param string $date date and time in 'YYYY-MM-DD hh:mm:ss' format
* @return string the $format-formatted $date
*
* @static
/**
* converts the date/datetime from ISO format to MySQL format
+ * Note that until CRM-14986/ 4.4.7 this was required whenever the pattern $dao->find(TRUE): $dao->save(); was
+ * used to update an object with a date field was used. The DAO now checks for a '-' in date field strings
+ * & runs this function if the - appears - meaning it is likely redundant in the form & BAO layers
*
* @param string $iso date/datetime in ISO format
*
/**
* converts the any given date to default date format.
*
- * @param array $params has given date-format
- * @param int $dateType type of date
- * @param string $dateParam index of params
+ * @param array $params has given date-format
+ * @param int $dateType type of date
+ * @param string $dateParam index of params
+ *
+ * @return bool
* @static
*/
static function convertToDefaultDate(&$params, $dateType, $dateParam) {
return FALSE;
}
+ /**
+ * @param $date
+ *
+ * @return bool
+ */
static function isDate(&$date) {
if (CRM_Utils_System::isNull($date)) {
return FALSE;
return TRUE;
}
+ /**
+ * @param null $timeStamp
+ *
+ * @return bool|string
+ */
static function currentDBDate($timeStamp = NULL) {
return $timeStamp ? date('YmdHis', $timeStamp) : date('YmdHis');
}
+ /**
+ * @param $date
+ * @param null $now
+ *
+ * @return bool
+ */
static function overdue($date, $now = NULL) {
$mysqlDate = self::isoToMysql($date);
if (!$now) {
* Function to get start date and end from
* the given relative term and unit
*
- * @param date $relative eg: term.unit
+ * @param date $relative eg: term.unit
+ *
+ * @param $from
+ * @param $to
*
* @return array start date, end date
* @static
/**
* Function to calculate next payment date according to provided unit & interval
*
- * @param string $unit frequency unit like year,month, week etc..
+ * @param string $unit frequency unit like year,month, week etc..
*
- * @param int $interval frequency interval.
+ * @param int $interval frequency interval.
*
- * @param array $date start date of pledge.
+ * @param array $date start date of pledge.
+ *
+ * @param bool $dontCareTime
*
* @return array $result contains new date with added interval
* @access public
*
* @param $format given format ( eg 'M Y', 'Y M' )
* return array of qfMapping and date parts for date format.
+ *
+ * @return array|null|string
*/
static function &checkBirthDateFormat($format = NULL) {
$birthDateFormat = NULL;
unset($to);
break;
+ case 'greater_previous':
+ $from['d'] = 31;
+ $from['M'] = 12;
+ $from['Y'] = $now['year'] - 1;
+ unset($to);
+ break;
+
case 'ending':
$to['d'] = $now['mday'];
$to['M'] = $now['mon'];
$difference = 2;
$quarter = ceil($now['mon'] / 3);
$quarter = $quarter - $difference;
+ $subtractYear = 0;
if ($quarter <= 0) {
$subtractYear = 1;
$quarter += 4;
case 'earlier':
$quarter = ceil($now['mon'] / 3) - 1;
+ $subtractYear = 0;
if ($quarter <= 0) {
$subtractYear = 1;
$quarter += 4;
unset($to);
break;
+ case 'greater_previous':
+ $quarter = ceil($now['mon'] / 3) - 1;
+ $subtractYear = 0;
+ if ($quarter <= 0) {
+ $subtractYear = 1;
+ $quarter += 4;
+ }
+ $from['M'] = 3 * $quarter;
+ $from['Y'] = $from['Y'] = $now['year'] - $subtractYear;
+ $from['d'] = date('t', mktime(0, 0, 0, $from['M'], 1, $from['Y']));
+ unset($to);
+ break;
+
case 'ending':
$to['d'] = $now['mday'];
$to['M'] = $now['mon'];
unset($to);
break;
+ case 'greater_previous':
+ //from end of past month
+ if ($now['mon'] == 1) {
+ $from['M'] = 12;
+ $from['Y'] = $now['year'] - 1;
+ }
+ else {
+ $from['M'] = $now['mon'] - 1;
+ $from['Y'] = $now['year'];
+ }
+
+ $from['d'] = date('t', mktime(0, 0, 0, $from['M'], 1, $from['Y']));
+ unset($to);
+ break;
+
case 'ending':
$to['d'] = $now['mday'];
$to['M'] = $now['mon'];
unset($to);
break;
+ case 'greater_previous':
+ $from['d'] = $now['mday'];
+ $from['M'] = $now['mon'];
+ $from['Y'] = $now['year'];
+ $from = self::intervalAdd('day', -1 * ($now['wday']) - 1, $from);
+ unset($to);
+ break;
+
case 'ending':
$to['d'] = $now['mday'];
$to['M'] = $now['mon'];
/**
* Function to process date, convert to mysql format
*
- * @param string $date date string
- * @param string $time time string
- * @param string $returnNullString 'null' needs to be returned
+ * @param string $date date string
+ * @param string $time time string
+ * @param bool|string $returnNullString 'null' needs to be returned
* so that db oject will set null in db
- * @param string $format expected return date format.( default is mysql )
+ * @param string $format expected return date format.( default is mysql )
*
- * @return string $mysqlDate date format that is excepted by mysql
+ * @return string $mysqlDate date format that is excepted by mysql
*/
static function processDate($date, $time = NULL, $returnNullString = FALSE, $format = 'YmdHis') {
$mysqlDate = NULL;
/**
* Function to convert mysql to date plugin format
*
- * @param string $mysqlDate date string
+ * @param string $mysqlDate date string
+ *
+ * @param null $formatType
+ * @param null $format
+ * @param null $timeFormat
*
- * @return array $date and time
+ * @return array $date and time
*/
static function setDateDefaults($mysqlDate = NULL, $formatType = NULL, $format = NULL, $timeFormat = NULL) {
// if date is not passed assume it as today
}
+ /**
+ * @param $date
+ * @param $dateType
+ *
+ * @return null|string
+ */
static function formatDate($date, $dateType) {
$formattedDate = NULL;
if (empty($date)) {