mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Merge branch 'simplify-cake-time' into 2.3
Conflicts: lib/Cake/Utility/CakeTime.php
This commit is contained in:
commit
ec54fa57c5
1 changed files with 136 additions and 135 deletions
|
@ -355,8 +355,7 @@ class CakeTime {
|
|||
if (!$format) {
|
||||
$format = self::$niceFormat;
|
||||
}
|
||||
$format = self::convertSpecifiers($format, $date);
|
||||
return self::_strftime($format, $date);
|
||||
return self::_strftime(self::convertSpecifiers($format, $date), $date);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -380,7 +379,15 @@ class CakeTime {
|
|||
}
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
|
||||
$y = self::isThisYear($date) ? '' : ' %Y';
|
||||
if (self::isToday($dateString, $timezone)) {
|
||||
return __d('cake', 'Today, %s', self::_strftime("%H:%M", $date));
|
||||
}
|
||||
if (self::wasYesterday($dateString, $timezone)) {
|
||||
return __d('cake', 'Yesterday, %s', self::_strftime("%H:%M", $date));
|
||||
}
|
||||
if (self::isTomorrow($dateString, $timezone)) {
|
||||
return __d('cake', 'Tomorrow, %s', self::_strftime("%H:%M", $date));
|
||||
}
|
||||
|
||||
$d = self::_strftime("%w", $date);
|
||||
$day = array(
|
||||
|
@ -392,22 +399,18 @@ class CakeTime {
|
|||
__d('cake', 'Friday'),
|
||||
__d('cake', 'Saturday')
|
||||
);
|
||||
|
||||
if (self::isToday($dateString, $timezone)) {
|
||||
$ret = __d('cake', 'Today, %s', self::_strftime("%H:%M", $date));
|
||||
} elseif (self::wasYesterday($dateString, $timezone)) {
|
||||
$ret = __d('cake', 'Yesterday, %s', self::_strftime("%H:%M", $date));
|
||||
} elseif (self::isTomorrow($dateString, $timezone)) {
|
||||
$ret = __d('cake', 'Tomorrow, %s', self::_strftime("%H:%M", $date));
|
||||
} elseif (self::wasWithinLast('7 days', $dateString, $timezone)) {
|
||||
$ret = sprintf('%s %s', $day[$d], self::_strftime(self::$niceShortFormat, $date));
|
||||
} elseif (self::isWithinNext('7 days', $dateString, $timezone)) {
|
||||
$ret = __d('cake', 'On %s %s', $day[$d], self::_strftime(self::$niceShortFormat, $date));
|
||||
} else {
|
||||
$format = self::convertSpecifiers("%b %eS{$y}, %H:%M", $date);
|
||||
$ret = self::_strftime($format, $date);
|
||||
if (self::wasWithinLast('7 days', $dateString, $timezone)) {
|
||||
return sprintf('%s %s', $day[$d], self::_strftime(self::$niceShortFormat, $date));
|
||||
}
|
||||
return $ret;
|
||||
if (self::isWithinNext('7 days', $dateString, $timezone)) {
|
||||
return __d('cake', 'On %s %s', $day[$d], self::_strftime(self::$niceShortFormat, $date));
|
||||
}
|
||||
|
||||
$y = '';
|
||||
if (!self::isThisYear($date)) {
|
||||
$y = ' %Y';
|
||||
}
|
||||
return self::_strftime(self::convertSpecifiers("%b %eS{$y}, %H:%M", $date), $date);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -452,8 +455,8 @@ class CakeTime {
|
|||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#testing-time
|
||||
*/
|
||||
public static function isToday($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d', $date) == date('Y-m-d', time());
|
||||
$timestamp = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d', $timestamp) == date('Y-m-d', time());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -465,20 +468,21 @@ class CakeTime {
|
|||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#testing-time
|
||||
*/
|
||||
public static function isThisWeek($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('W o', $date) == date('W o', time());
|
||||
$timestamp = self::fromString($dateString, $timezone);
|
||||
return date('W o', $timestamp) == date('W o', time());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if given datetime string is within this month
|
||||
*
|
||||
* @param integer|string|DateTime $dateString UNIX timestamp, strtotime() valid string or DateTime object
|
||||
* @param string|DateTimeZone $timezone Timezone string or DateTimeZone object
|
||||
* @return boolean True if datetime string is within current month
|
||||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#testing-time
|
||||
*/
|
||||
public static function isThisMonth($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('m Y', $date) == date('m Y', time());
|
||||
$timestamp = self::fromString($dateString, $timezone);
|
||||
return date('m Y', $timestamp) == date('m Y', time());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -490,8 +494,8 @@ class CakeTime {
|
|||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#testing-time
|
||||
*/
|
||||
public static function isThisYear($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('Y', $date) == date('Y', time());
|
||||
$timestamp = self::fromString($dateString, $timezone);
|
||||
return date('Y', $timestamp) == date('Y', time());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -504,8 +508,8 @@ class CakeTime {
|
|||
*
|
||||
*/
|
||||
public static function wasYesterday($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d', $date) == date('Y-m-d', strtotime('yesterday'));
|
||||
$timestamp = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d', $timestamp) == date('Y-m-d', strtotime('yesterday'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -517,8 +521,8 @@ class CakeTime {
|
|||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#testing-time
|
||||
*/
|
||||
public static function isTomorrow($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d', $date) == date('Y-m-d', strtotime('tomorrow'));
|
||||
$timestamp = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d', $timestamp) == date('Y-m-d', strtotime('tomorrow'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -532,30 +536,21 @@ class CakeTime {
|
|||
public static function toQuarter($dateString, $range = false) {
|
||||
$time = self::fromString($dateString);
|
||||
$date = ceil(date('m', $time) / 3);
|
||||
|
||||
if ($range === true) {
|
||||
$range = 'Y-m-d';
|
||||
if ($range === false) {
|
||||
return $date;
|
||||
}
|
||||
|
||||
if ($range !== false) {
|
||||
$year = date('Y', $time);
|
||||
|
||||
switch ($date) {
|
||||
case 1:
|
||||
$date = array($year . '-01-01', $year . '-03-31');
|
||||
break;
|
||||
case 2:
|
||||
$date = array($year . '-04-01', $year . '-06-30');
|
||||
break;
|
||||
case 3:
|
||||
$date = array($year . '-07-01', $year . '-09-30');
|
||||
break;
|
||||
case 4:
|
||||
$date = array($year . '-10-01', $year . '-12-31');
|
||||
break;
|
||||
}
|
||||
$year = date('Y', $time);
|
||||
switch ($date) {
|
||||
case 1:
|
||||
return array($year . '-01-01', $year . '-03-31');
|
||||
case 2:
|
||||
return array($year . '-04-01', $year . '-06-30');
|
||||
case 3:
|
||||
return array($year . '-07-01', $year . '-09-30');
|
||||
case 4:
|
||||
return array($year . '-10-01', $year . '-12-31');
|
||||
}
|
||||
return $date;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -616,8 +611,7 @@ class CakeTime {
|
|||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#formatting
|
||||
*/
|
||||
public static function toAtom($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
return date('Y-m-d\TH:i:s\Z', $date);
|
||||
return date('Y-m-d\TH:i:s\Z', self::fromString($dateString, $timezone));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -631,27 +625,27 @@ class CakeTime {
|
|||
public static function toRSS($dateString, $timezone = null) {
|
||||
$date = self::fromString($dateString, $timezone);
|
||||
|
||||
if (!is_null($timezone)) {
|
||||
if (is_numeric($timezone)) {
|
||||
$userOffset = $timezone;
|
||||
} else {
|
||||
if (!is_object($timezone)) {
|
||||
$timezone = new DateTimeZone($timezone);
|
||||
}
|
||||
$currentDate = new DateTime('@' . $date);
|
||||
$currentDate->setTimezone($timezone);
|
||||
$userOffset = $timezone->getOffset($currentDate) / 60 / 60;
|
||||
}
|
||||
if ($userOffset == 0) {
|
||||
$timezone = '+0000';
|
||||
} else {
|
||||
$hours = (int)floor(abs($userOffset));
|
||||
$minutes = (int)(fmod(abs($userOffset), $hours) * 60);
|
||||
$timezone = ($userOffset < 0 ? '-' : '+') . str_pad($hours, 2, '0', STR_PAD_LEFT) . str_pad($minutes, 2, '0', STR_PAD_LEFT);
|
||||
}
|
||||
return date('D, d M Y H:i:s', $date) . ' ' . $timezone;
|
||||
if (is_null($timezone)) {
|
||||
return date("r", $date);
|
||||
}
|
||||
return date("r", $date);
|
||||
|
||||
$userOffset = $timezone;
|
||||
if (!is_numeric($timezone)) {
|
||||
if (!is_object($timezone)) {
|
||||
$timezone = new DateTimeZone($timezone);
|
||||
}
|
||||
$currentDate = new DateTime('@' . $date);
|
||||
$currentDate->setTimezone($timezone);
|
||||
$userOffset = $timezone->getOffset($currentDate) / 60 / 60;
|
||||
}
|
||||
|
||||
$timezone = '+0000';
|
||||
if ($userOffset != 0) {
|
||||
$hours = (int)floor(abs($userOffset));
|
||||
$minutes = (int)(fmod(abs($userOffset), $hours) * 60);
|
||||
$timezone = ($userOffset < 0 ? '-' : '+') . str_pad($hours, 2, '0', STR_PAD_LEFT) . str_pad($minutes, 2, '0', STR_PAD_LEFT);
|
||||
}
|
||||
return date('D, d M Y H:i:s', $date) . ' ' . $timezone;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -729,12 +723,11 @@ class CakeTime {
|
|||
$inSeconds = self::fromString($dateTime, $timezone);
|
||||
$backwards = ($inSeconds > $now);
|
||||
|
||||
$futureTime = $now;
|
||||
$pastTime = $inSeconds;
|
||||
if ($backwards) {
|
||||
$futureTime = $inSeconds;
|
||||
$pastTime = $now;
|
||||
} else {
|
||||
$futureTime = $now;
|
||||
$pastTime = $inSeconds;
|
||||
}
|
||||
$diff = $futureTime - $pastTime;
|
||||
|
||||
|
@ -800,47 +793,60 @@ class CakeTime {
|
|||
$diff = $diff - ($minutes * 60);
|
||||
$seconds = $diff;
|
||||
}
|
||||
$relativeDate = '';
|
||||
$diff = $futureTime - $pastTime;
|
||||
|
||||
if ($diff > abs($now - self::fromString($end))) {
|
||||
$relativeDate = __d('cake', 'on %s', date($format, $inSeconds));
|
||||
} else {
|
||||
if ($years > 0) {
|
||||
$f = $accuracy['year'];
|
||||
} elseif (abs($months) > 0) {
|
||||
$f = $accuracy['month'];
|
||||
} elseif (abs($weeks) > 0) {
|
||||
$f = $accuracy['week'];
|
||||
} elseif (abs($days) > 0) {
|
||||
$f = $accuracy['day'];
|
||||
} elseif (abs($hours) > 0) {
|
||||
$f = $accuracy['hour'];
|
||||
} elseif (abs($minutes) > 0) {
|
||||
$f = $accuracy['minute'];
|
||||
} else {
|
||||
$f = $accuracy['second'];
|
||||
}
|
||||
|
||||
$f = str_replace(array('year', 'month', 'week', 'day', 'hour', 'minute', 'second'), array(1, 2, 3, 4, 5, 6, 7), $f);
|
||||
|
||||
$relativeDate .= $f >= 1 && $years > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d year', '%d years', $years, $years) : '';
|
||||
$relativeDate .= $f >= 2 && $months > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d month', '%d months', $months, $months) : '';
|
||||
$relativeDate .= $f >= 3 && $weeks > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d week', '%d weeks', $weeks, $weeks) : '';
|
||||
$relativeDate .= $f >= 4 && $days > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d day', '%d days', $days, $days) : '';
|
||||
$relativeDate .= $f >= 5 && $hours > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d hour', '%d hours', $hours, $hours) : '';
|
||||
$relativeDate .= $f >= 6 && $minutes > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d minute', '%d minutes', $minutes, $minutes) : '';
|
||||
$relativeDate .= $f >= 7 && $seconds > 0 ? ($relativeDate ? ', ' : '') . __dn('cake', '%d second', '%d seconds', $seconds, $seconds) : '';
|
||||
|
||||
if (!$backwards) {
|
||||
$relativeDate = __d('cake', '%s ago', $relativeDate);
|
||||
}
|
||||
}
|
||||
|
||||
// If now
|
||||
if ($diff == 0) {
|
||||
$relativeDate = __d('cake', 'just now', 'just now');
|
||||
return __d('cake', 'just now', 'just now');
|
||||
}
|
||||
|
||||
if ($diff > abs($now - self::fromString($end))) {
|
||||
return __d('cake', 'on %s', date($format, $inSeconds));
|
||||
}
|
||||
|
||||
$f = $accuracy['second'];
|
||||
if ($years > 0) {
|
||||
$f = $accuracy['year'];
|
||||
} elseif (abs($months) > 0) {
|
||||
$f = $accuracy['month'];
|
||||
} elseif (abs($weeks) > 0) {
|
||||
$f = $accuracy['week'];
|
||||
} elseif (abs($days) > 0) {
|
||||
$f = $accuracy['day'];
|
||||
} elseif (abs($hours) > 0) {
|
||||
$f = $accuracy['hour'];
|
||||
} elseif (abs($minutes) > 0) {
|
||||
$f = $accuracy['minute'];
|
||||
}
|
||||
|
||||
$f = str_replace(array('year', 'month', 'week', 'day', 'hour', 'minute', 'second'), array(1, 2, 3, 4, 5, 6, 7), $f);
|
||||
|
||||
$relativeDate = '';
|
||||
if ($f >= 1 && $years > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d year', '%d years', $years, $years);
|
||||
}
|
||||
if ($f >= 2 && $months > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d month', '%d months', $months, $months);
|
||||
}
|
||||
if ($f >= 3 && $weeks > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d week', '%d weeks', $weeks, $weeks);
|
||||
}
|
||||
if ($f >= 4 && $days > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d day', '%d days', $days, $days);
|
||||
}
|
||||
if ($f >= 5 && $hours > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d hour', '%d hours', $hours, $hours);
|
||||
}
|
||||
if ($f >= 6 && $minutes > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d minute', '%d minutes', $minutes, $minutes);
|
||||
}
|
||||
if ($f >= 7 && $seconds > 0) {
|
||||
$relativeDate .= ($relativeDate ? ', ' : '') . __dn('cake', '%d second', '%d seconds', $seconds, $seconds);
|
||||
}
|
||||
|
||||
if (!$backwards) {
|
||||
return __d('cake', '%s ago', $relativeDate);
|
||||
}
|
||||
|
||||
return $relativeDate;
|
||||
}
|
||||
|
||||
|
@ -863,10 +869,7 @@ class CakeTime {
|
|||
$date = self::fromString($dateString, $timezone);
|
||||
$interval = self::fromString('-' . $timeInterval);
|
||||
|
||||
if ($date >= $interval && $date <= time()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return $date >= $interval && $date <= time();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -888,10 +891,7 @@ class CakeTime {
|
|||
$date = self::fromString($dateString, $timezone);
|
||||
$interval = self::fromString('+' . $timeInterval);
|
||||
|
||||
if ($date <= $interval && $date >= time()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return $date <= $interval && $date >= time();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -902,18 +902,18 @@ class CakeTime {
|
|||
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#formatting
|
||||
*/
|
||||
public static function gmt($dateString = null) {
|
||||
$time = time();
|
||||
if ($dateString != null) {
|
||||
$time = self::fromString($dateString);
|
||||
} else {
|
||||
$time = time();
|
||||
}
|
||||
$hour = intval(date("G", $time));
|
||||
$minute = intval(date("i", $time));
|
||||
$second = intval(date("s", $time));
|
||||
$month = intval(date("n", $time));
|
||||
$day = intval(date("j", $time));
|
||||
$year = intval(date("Y", $time));
|
||||
return gmmktime($hour, $minute, $second, $month, $day, $year);
|
||||
return gmmktime(
|
||||
intval(date('G', $time)),
|
||||
intval(date('i', $time)),
|
||||
intval(date('s', $time)),
|
||||
intval(date('n', $time)),
|
||||
intval(date('j', $time)),
|
||||
intval(date('Y', $time))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -943,7 +943,10 @@ class CakeTime {
|
|||
public static function format($date, $format = null, $default = false, $timezone = null) {
|
||||
//Backwards compatible params order
|
||||
$time = self::fromString($format, $timezone);
|
||||
$_time = is_numeric($time) ? false : self::fromString($date, $timezone);
|
||||
$_time = false;
|
||||
if (!is_numeric($time)) {
|
||||
$_time = self::fromString($date, $timezone);
|
||||
}
|
||||
|
||||
if (is_numeric($_time) && $time === false) {
|
||||
return self::i18nFormat($_time, $format, $default, $timezone);
|
||||
|
@ -973,8 +976,7 @@ class CakeTime {
|
|||
if (empty($format)) {
|
||||
$format = '%x';
|
||||
}
|
||||
$format = self::convertSpecifiers($format, $date);
|
||||
return self::_strftime($format, $date);
|
||||
return self::_strftime(self::convertSpecifiers($format, $date), $date);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1025,9 +1027,8 @@ class CakeTime {
|
|||
}
|
||||
}
|
||||
return $return;
|
||||
} else {
|
||||
return array_combine($identifiers, $identifiers);
|
||||
}
|
||||
return array_combine($identifiers, $identifiers);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue