|
<?php |
|
|
|
namespace Kanboard\Helper; |
|
|
|
use DateTime; |
|
use Kanboard\Core\Base; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DateHelper extends Base |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function time($value) |
|
{ |
|
return date($this->configModel->get('application_time_format', 'H:i'), $value); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function date($value) |
|
{ |
|
if (empty($value)) { |
|
return ''; |
|
} |
|
|
|
if (! ctype_digit((string) $value)) { |
|
$value = strtotime($value); |
|
} |
|
|
|
return date($this->configModel->get('application_date_format', 'm/d/Y'), $value); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function datetime($value) |
|
{ |
|
return date($this->dateParser->getUserDateTimeFormat(), $value); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function duration($seconds) |
|
{ |
|
if ($seconds == 0) { |
|
return 0; |
|
} |
|
|
|
$dtF = new DateTime("@0"); |
|
$dtT = new DateTime("@$seconds"); |
|
|
|
$format = sprintf("%%a %s, %%h %s, %%i %s, %%s %s", t('days'), t('hours'), t('minutes'), t('seconds')); |
|
return $dtF->diff($dtT)->format($format); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function durationHours($hours) |
|
{ |
|
return sprintf('%0.2f %s', round($hours, 2), t('hours')); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function age($timestamp, $now = null) |
|
{ |
|
if ($now === null) { |
|
$now = time(); |
|
} |
|
|
|
$diff = $now - $timestamp; |
|
|
|
if ($diff < 900) { |
|
return t('<15m'); |
|
} |
|
if ($diff < 1200) { |
|
return t('<30m'); |
|
} elseif ($diff < 3600) { |
|
return t('<1h'); |
|
} elseif ($diff < 86400) { |
|
return '~'.t('%dh', $diff / 3600); |
|
} |
|
|
|
return t('%dd', ($now - $timestamp) / 86400); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getDayHours() |
|
{ |
|
$values = array(); |
|
|
|
foreach (range(0, 23) as $hour) { |
|
foreach (array(0, 30) as $minute) { |
|
$time = sprintf('%02d:%02d', $hour, $minute); |
|
$values[$time] = $time; |
|
} |
|
} |
|
|
|
return $values; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getWeekDays() |
|
{ |
|
$values = array(); |
|
|
|
foreach (range(1, 7) as $day) { |
|
$values[$day] = $this->getWeekDay($day); |
|
} |
|
|
|
return $values; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getWeekDay($day) |
|
{ |
|
return date('l', strtotime('next Monday +'.($day - 1).' days')); |
|
} |
|
} |
|
|