Make use of DateUtils class, update composer error message
This commit is contained in:
parent
cf990c8544
commit
be2a2dc473
|
@ -9,8 +9,8 @@ if (!file_exists(__PRIVATE_DIR . "/vendor/autoload.php")) {
|
||||||
die(
|
die(
|
||||||
'<h2>Oops! We cannot find Composer\'s autoload file.</h2>' .
|
'<h2>Oops! We cannot find Composer\'s autoload file.</h2>' .
|
||||||
'<h3>In 2.0, the installation procedure is a little different. Go to the ' .
|
'<h3>In 2.0, the installation procedure is a little different. Go to the ' .
|
||||||
'<a href="https://github.com/Wruczek/ts-website/releases" target="_blank">releases</a> on GitHub, ' .
|
'<a href="https://github.com/Wruczek/ts-website/wiki/%5BEN%5D-Website-Installation" target="_blank">wiki</a>' .
|
||||||
'download the latest version and upload in on your server.</h3>' .
|
'and follow the installation tutorial.</h3>' .
|
||||||
'Or, if you know what you are doing, run <code>composer update</code> in the ' .
|
'Or, if you know what you are doing, run <code>composer update</code> in the ' .
|
||||||
'<code>' . realpath(__BASE_DIR) . '</code> directory'
|
'<code>' . realpath(__BASE_DIR) . '</code> directory'
|
||||||
);
|
);
|
||||||
|
|
|
@ -5,12 +5,13 @@ namespace Wruczek\TSWebsite\Utils;
|
||||||
use Wruczek\TSWebsite\Utils\Language\LanguageUtils;
|
use Wruczek\TSWebsite\Utils\Language\LanguageUtils;
|
||||||
|
|
||||||
class DateUtils {
|
class DateUtils {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns current date format based on current user language. If it cannot
|
* Returns current date format based on current user language. If it cannot
|
||||||
* be retrieved, default value is returned
|
* be retrieved, default value is returned
|
||||||
* @return string date format
|
* @return string date format
|
||||||
*/
|
*/
|
||||||
public function getDateFormat() {
|
public static function getDateFormat() {
|
||||||
try {
|
try {
|
||||||
return LanguageUtils::i()->translate("DATE_FORMAT");
|
return LanguageUtils::i()->translate("DATE_FORMAT");
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
@ -23,7 +24,7 @@ class DateUtils {
|
||||||
* be retrieved, default value is returned
|
* be retrieved, default value is returned
|
||||||
* @return string time format
|
* @return string time format
|
||||||
*/
|
*/
|
||||||
public function getTimeFormat() {
|
public static function getTimeFormat() {
|
||||||
try {
|
try {
|
||||||
return LanguageUtils::i()->translate("TIME_FORMAT");
|
return LanguageUtils::i()->translate("TIME_FORMAT");
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
@ -36,8 +37,8 @@ class DateUtils {
|
||||||
* @param $timestamp
|
* @param $timestamp
|
||||||
* @return false|string
|
* @return false|string
|
||||||
*/
|
*/
|
||||||
public function formatToDate($timestamp) {
|
public static function formatDate($timestamp) {
|
||||||
return date($this->getDateFormat(), $timestamp);
|
return date(self::getDateFormat(), $timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,8 +46,8 @@ class DateUtils {
|
||||||
* @param $timestamp
|
* @param $timestamp
|
||||||
* @return false|string
|
* @return false|string
|
||||||
*/
|
*/
|
||||||
public function formatToTime($timestamp) {
|
public static function foramtTime($timestamp) {
|
||||||
return date($this->getTimeFormat(), $timestamp);
|
return date(self::getTimeFormat(), $timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,63 +56,8 @@ class DateUtils {
|
||||||
* @param string $additional additional date format
|
* @param string $additional additional date format
|
||||||
* @return false|string
|
* @return false|string
|
||||||
*/
|
*/
|
||||||
public function formatToDateTime($timestamp, $additional = "") {
|
public static function formatDatetime($timestamp, $additional = "") {
|
||||||
return date("{$this->getDateFormat()} {$this->getTimeFormat()} $additional", $timestamp);
|
return date(trim(self::getDateFormat() . ", " . self::getTimeFormat() . " " . $additional), $timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Formats timestamp into "time ago" string
|
|
||||||
* For example, timestamp set to 60 seconds ago will return "1 minute ago"
|
|
||||||
*
|
|
||||||
* Taken from StackOverflow: https://stackoverflow.com/a/18602474
|
|
||||||
* @param $timestamp int timestamp with past date
|
|
||||||
* @param bool $full if true, full date will be returned. For example "5 hours, 2 minutes, 8 seconds"
|
|
||||||
* @return string timestamp formatted to fuzzy date. Marf.
|
|
||||||
*/
|
|
||||||
public function fuzzyDate($timestamp, $full = false) {
|
|
||||||
$now = new \DateTime;
|
|
||||||
$ago = (new \DateTime)->setTimestamp($timestamp);
|
|
||||||
|
|
||||||
$diff = $now->diff($ago);
|
|
||||||
|
|
||||||
$diff->w = floor($diff->d / 7);
|
|
||||||
$diff->d -= $diff->w * 7;
|
|
||||||
|
|
||||||
$string = [
|
|
||||||
'y' => 'year',
|
|
||||||
'm' => 'month',
|
|
||||||
'w' => 'week',
|
|
||||||
'd' => 'day',
|
|
||||||
'h' => 'hour',
|
|
||||||
'i' => 'minute',
|
|
||||||
's' => 'second'
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($string as $k => &$v) {
|
|
||||||
if ($diff->$k) {
|
|
||||||
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
|
|
||||||
} else {
|
|
||||||
unset($string[$k]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$full) $string = array_slice($string, 0, 1);
|
|
||||||
return $string ? implode(', ', $string) . ' ago' : 'just now';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns fuzzy date with abbreviation showing precise date
|
|
||||||
* @see fuzzyDate
|
|
||||||
* @param $timestamp
|
|
||||||
* @param bool $full
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function fuzzyDateHTML($timestamp, $full = false) {
|
|
||||||
$fuzzyDate = $this->fuzzyDate($timestamp, $full);
|
|
||||||
$fullDate = $this->formatToDateTime($timestamp, "T");
|
|
||||||
|
|
||||||
return '<abbr data-fuzzydate="' . $timestamp . '"></abbr>';
|
|
||||||
// return '<abbr data-toggle="tooltip" title="' . htmlentities($fullDate) . '">' . htmlentities($fuzzyDate) . '</abbr>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,11 +27,13 @@ class TemplateUtils {
|
||||||
// Add custom filters...
|
// Add custom filters...
|
||||||
|
|
||||||
$this->getLatte()->addFilter("fuzzyDateAbbr", function ($s) {
|
$this->getLatte()->addFilter("fuzzyDateAbbr", function ($s) {
|
||||||
return new Html('<span data-relativetime="fuzzydate" data-timestamp="' . $s . '">{cannot convert ' . $s . '}</span>');
|
$default = DateUtils::formatDatetime($s);
|
||||||
|
return new Html('<span data-relativetime="fuzzydate" data-timestamp="' . $s . '">' . $default . '</span>');
|
||||||
});
|
});
|
||||||
|
|
||||||
$this->getLatte()->addFilter("fullDate", function ($s) {
|
$this->getLatte()->addFilter("fullDate", function ($s) {
|
||||||
return new Html('<span data-relativetime="fulldate" data-timestamp="' . $s . '">{cannot convert ' . $s . '}</span>');
|
$default = DateUtils::formatDatetime($s);
|
||||||
|
return new Html('<span data-relativetime="fulldate" data-timestamp="' . $s . '">' . $default . '</span>');
|
||||||
});
|
});
|
||||||
|
|
||||||
$this->getLatte()->addFilter("translate", function ($s, ...$args) {
|
$this->getLatte()->addFilter("translate", function ($s, ...$args) {
|
||||||
|
|
Loading…
Reference in New Issue