TimeUtil을 소수점 시간을 고려할 수 있도록 수정
This commit is contained in:
+81
-32
@@ -5,62 +5,111 @@ class TimeUtil
|
||||
{
|
||||
public static function DateToday()
|
||||
{
|
||||
return date('Y-m-d');
|
||||
$obj = new \DateTime();
|
||||
return $obj->format('Y-m-d');
|
||||
}
|
||||
|
||||
public static function DatetimeNow()
|
||||
public static function DatetimeNow(bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s');
|
||||
$obj = new \DateTime();
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function DatetimeFromNowDay($day)
|
||||
public static function DatetimeFromNowDay($day, bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s', strtotime("{$day} days"));
|
||||
$obj = new \DateTime();
|
||||
$obj->modify("{$day} days");
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function DatetimeFromNowHour($hour)
|
||||
public static function DatetimeFromNowHour($hour, bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s', strtotime("{$hour} hours"));
|
||||
$obj = new \DateTime();
|
||||
$obj->modify("{$hour} hours");
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function DatetimeFromNowMinute($minute)
|
||||
public static function DatetimeFromNowMinute($minute, bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s', strtotime("{$minute} minutes"));
|
||||
$obj = new \DateTime();
|
||||
$obj->modify("{$minute} minutes");
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function DatetimeFromNowSecond($second)
|
||||
public static function DatetimeFromNowSecond($second, bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s', strtotime("{$second} seconds"));
|
||||
$obj = new \DateTime();
|
||||
$obj->modify("{$second} seconds");
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function DatetimeFromMinute($date, $minute)
|
||||
public static function DatetimeFromMinute($date, $minute, bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s', strtotime($date) + $minute*60);
|
||||
$obj = new \DateTime($date);
|
||||
$obj->modify("{$minute} minutes");
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function DatetimeFromSecond($date, $second)
|
||||
public static function DatetimeFromSecond($date, $second, bool $withFraction=false)
|
||||
{
|
||||
return date('Y-m-d H:i:s', strtotime($date) + $second);
|
||||
$obj = new \DateTime($date);
|
||||
$obj->modify("{$second} seconds");
|
||||
if(!$withFraction){
|
||||
return $obj->format('Y-m-d H:i:s');
|
||||
}
|
||||
return $obj->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
public static function CutSecond($date)
|
||||
{
|
||||
$date[17] = '0';
|
||||
$date[18] = '0';
|
||||
return $date;
|
||||
public static function SecondsToDateInterval(float $fullSeconds): \DateInterval{
|
||||
$seconds = floor($fullSeconds);
|
||||
$fraction = $fullSeconds - $seconds;
|
||||
|
||||
$interval = new \DateInterval("PT0S");
|
||||
$interval->s = $seconds;
|
||||
$interval->f = $fraction;
|
||||
|
||||
$d0 = new \DateTimeImmutable("@0");
|
||||
$d1 = $d0->add($interval);
|
||||
|
||||
return $d1->diff($d0);
|
||||
}
|
||||
|
||||
public static function CutMinute($date)
|
||||
{
|
||||
$date[14] = '0';
|
||||
$date[15] = '0';
|
||||
$date[17] = '0';
|
||||
$date[18] = '0';
|
||||
return $date;
|
||||
}
|
||||
|
||||
public static function HourMinuteSecond($second)
|
||||
{
|
||||
return date('H:i:s', strtotime('00:00:00') + $second);
|
||||
public static function DateIntervalToSeconds(\DateInterval $interval): float{
|
||||
if($interval->days !== FALSE){
|
||||
$days = $interval->days;
|
||||
}
|
||||
else{
|
||||
if($interval->y != 0){
|
||||
throw new \InvalidArgumentException('Year argument conversion is not supported');
|
||||
}
|
||||
if($interval->m != 0){
|
||||
throw new \InvalidArgumentException('Month argument conversion is not supported');
|
||||
}
|
||||
$days = $interval->d;
|
||||
}
|
||||
|
||||
$hours = $days * 24 + $interval->h;
|
||||
$minutes = $hours * 60 + $interval->i;
|
||||
$seconds = $minutes * 60 + $interval->s + $interval->f;
|
||||
|
||||
return $seconds;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user