modified: .gitignore
This commit is contained in:
@@ -56,10 +56,10 @@ class DateRangeService
|
||||
// По умолчанию: с начала года до сегодня
|
||||
$startDate = Carbon::now('Asia/Yakutsk')
|
||||
->startOfYear() // 1 января текущего года
|
||||
->setTime(6, 0);
|
||||
->setTime(7, 0);
|
||||
|
||||
$endDate = Carbon::now('Asia/Yakutsk')
|
||||
->setTime(6, 0);
|
||||
->setTime(7, 0);
|
||||
|
||||
return [
|
||||
$startDate->format('Y-m-d H:i:s'),
|
||||
@@ -83,7 +83,7 @@ class DateRangeService
|
||||
$startDate = $this->parseDate($startAt);
|
||||
$endDate = $this->parseDate($endAt);
|
||||
|
||||
return $startDate->diffInDays($endDate) === 1.0;
|
||||
return $startDate->isSameDay($endDate) || $startDate->diffInDays($endDate) === 1.0;
|
||||
}
|
||||
|
||||
private function getCustomDateRange($startAt, $endAt, $user): array
|
||||
@@ -92,11 +92,11 @@ class DateRangeService
|
||||
$endDate = $this->parseDate($endAt);
|
||||
|
||||
if ($startDate->isSameDay($endDate)) {
|
||||
$startDate = $startDate->subDay()->setTime(6, 0);
|
||||
$endDate = $endDate->setTime(6, 0);
|
||||
$startDate = $startDate->subDay()->setTime(7, 0);
|
||||
$endDate = $endDate->setTime(7, 0);
|
||||
} else {
|
||||
$startDate = $startDate->setTime(6, 0);
|
||||
$endDate = $endDate->setTime(6, 0);
|
||||
$startDate = $startDate->setTime(7, 0);
|
||||
$endDate = $endDate->setTime(7, 0);
|
||||
}
|
||||
|
||||
return [
|
||||
@@ -109,10 +109,10 @@ class DateRangeService
|
||||
{
|
||||
$startDate = Carbon::now('Asia/Yakutsk')
|
||||
->subDay()
|
||||
->setTime(6, 0);
|
||||
->setTime(7, 0);
|
||||
|
||||
$endDate = Carbon::now('Asia/Yakutsk')
|
||||
->setTime(6, 0);
|
||||
->setTime(7, 0);
|
||||
|
||||
return [
|
||||
$startDate->format('Y-m-d H:i:s'),
|
||||
@@ -123,8 +123,12 @@ class DateRangeService
|
||||
public function parseDate($dateInput): Carbon
|
||||
{
|
||||
if (is_numeric($dateInput)) {
|
||||
return Carbon::createFromTimestampMs($dateInput)
|
||||
->setTimezone('Asia/Yakutsk');
|
||||
$timestamp = (string) $dateInput;
|
||||
$isMilliseconds = strlen(ltrim($timestamp, '-')) > 10;
|
||||
|
||||
return $isMilliseconds
|
||||
? Carbon::createFromTimestampMs((int) $dateInput)->setTimezone('Asia/Yakutsk')
|
||||
: Carbon::createFromTimestamp((int) $dateInput)->setTimezone('Asia/Yakutsk');
|
||||
}
|
||||
|
||||
return Carbon::parse($dateInput, 'Asia/Yakutsk');
|
||||
@@ -139,6 +143,10 @@ class DateRangeService
|
||||
return $date;
|
||||
}
|
||||
|
||||
if (is_numeric($date)) {
|
||||
return $this->parseDate($date);
|
||||
}
|
||||
|
||||
if (is_string($date)) {
|
||||
return Carbon::parse($date, 'Asia/Yakutsk');
|
||||
}
|
||||
@@ -157,9 +165,9 @@ class DateRangeService
|
||||
public function createDateRangeForDate(Carbon $date, User $user): DateRange
|
||||
{
|
||||
// Для автоматического заполнения используем логику как для врача
|
||||
// (вчера 06:00 - сегодня 06:00)
|
||||
$startDate = $date->copy()->subDay()->setTime(6, 0);
|
||||
$endDate = $date->copy()->setTime(6, 0);
|
||||
// (вчера 07:00 - сегодня 07:00)
|
||||
$startDate = $date->copy()->subDay()->setTime(7, 0);
|
||||
$endDate = $date->copy()->setTime(7, 0);
|
||||
|
||||
return new DateRange(
|
||||
startDate: $startDate,
|
||||
|
||||
Reference in New Issue
Block a user